// Copyright (c) 2023 The TQUIC Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// TODO: generate the DECODE_TABLE from the ENCODE_TABLE instead of
// hard encoding in this file.

use crate::codec::Decoder;
use crate::codec::Encoder;
use crate::h3::Http3Error;
use crate::h3::Result;

const FLAG_MAYBE_EOS: u8 = 1;
const FLAG_DECODED: u8 = 2;
const FLAG_ERROR: u8 = 4;

/// Encode a string using Huffman algorithm.
///
/// See RFC 7541 Appendix B
pub fn encode(src: &[u8], mut buf: &mut [u8], lower: bool) -> Result<usize> {
    let buf_len = buf.len();

    // A sliding bits window for output encoded bytes.
    let mut bits_win: u64 = 0;

    // Number of used bytes in the bits window.
    let mut bits_used = 0;

    for &byte in src {
        // Lookup the Huffman code for the byte.
        let byte = if lower {
            byte.to_ascii_lowercase()
        } else {
            byte
        };
        let (nbits, code) = ENCODE_TABLE[byte as usize];

        // Append bits of the code to current bits window.
        bits_win |= code << (64 - bits_used - nbits);
        bits_used += nbits;

        // Output current bytes in the bits windnow.
        while bits_used >= 8 {
            buf.write_u8((bits_win >> 56) as u8)?;
            bits_win <<= 8;
            bits_used -= 8;
        }
    }

    // Output the remaining bits and the the EOS token.
    if bits_used != 0 {
        bits_win |= (1 << (64 - bits_used)) - 1;
        buf.write_u8((bits_win >> 56) as u8)?;
    }

    Ok(buf_len - buf.len())
}

/// Return the length of the encoded string.
pub fn encode_output_length(src: &[u8], low: bool) -> usize {
    let mut bits: usize = 0;

    // Total bits of the encoded string.
    for &b in src {
        let b = if low { b.to_ascii_lowercase() } else { b };
        let (nbits, _) = ENCODE_TABLE[b as usize];
        bits += nbits;
    }

    // Total bytes of the encoded string.
    let mut len = bits / 8;
    if bits & 7 != 0 {
        len += 1;
    }

    len
}

/// Decode a string using Huffman algorithm.
pub fn decode(mut buf: &[u8]) -> Result<Vec<u8>> {
    let mut decoder = HuffmanDecoder::new();

    // The compression ratio is >= 0.5
    let mut out = Vec::with_capacity(buf.len() << 1);
    while !buf.is_empty() {
        let byte = buf.read_u8()?;
        if let Some(b) = decoder.decode4(byte >> 4)? {
            out.push(b);
        }
        if let Some(b) = decoder.decode4(byte & 0xf)? {
            out.push(b);
        }
    }

    if !decoder.is_final() {
        return Err(Http3Error::QpackDecompressionFailed);
    }
    Ok(out)
}

struct HuffmanDecoder {
    state: usize,
    maybe_eos: bool,
}

impl HuffmanDecoder {
    fn new() -> Self {
        Self {
            state: 0,
            maybe_eos: false,
        }
    }

    // Decode 4 bits
    fn decode4(&mut self, input: u8) -> Result<Option<u8>> {
        let (next, byte, flags) = DECODE_TABLE[self.state][input as usize];
        if self.contains(flags, FLAG_ERROR) {
            // Data followed the EOS marker
            return Err(Http3Error::QpackDecompressionFailed);
        }

        let ret = if self.contains(flags, FLAG_DECODED) {
            Some(byte)
        } else {
            None
        };
        self.state = next;
        self.maybe_eos = self.contains(flags, FLAG_MAYBE_EOS);

        Ok(ret)
    }

    fn contains(&self, flags: u8, flag: u8) -> bool {
        flags & flag == flag
    }

    fn is_final(&self) -> bool {
        self.state == 0 || self.maybe_eos
    }
}

/// This Huffman code was generated from statistics obtained on a large sample
/// of HTTP headers. It is a canonical Huffman code with some tweaking to
/// ensure that no symbol has a unique code length.
///
/// Each row in the table defines the code used to represent a symbol:
/// - len: The number of bits for the code representing the symbol.
/// - bits: The Huffman code for the symbol, represented as a hexadecimal integer,
///   aligned on the least significant bit (LSB).
const ENCODE_TABLE: [(usize, u64); 257] = [
    // (len, bits)
    (13, 0x1ff8),
    (23, 0x7fffd8),
    (28, 0xfffffe2),
    (28, 0xfffffe3),
    (28, 0xfffffe4),
    (28, 0xfffffe5),
    (28, 0xfffffe6),
    (28, 0xfffffe7),
    (28, 0xfffffe8),
    (24, 0xffffea),
    (30, 0x3ffffffc),
    (28, 0xfffffe9),
    (28, 0xfffffea),
    (30, 0x3ffffffd),
    (28, 0xfffffeb),
    (28, 0xfffffec),
    (28, 0xfffffed),
    (28, 0xfffffee),
    (28, 0xfffffef),
    (28, 0xffffff0),
    (28, 0xffffff1),
    (28, 0xffffff2),
    (30, 0x3ffffffe),
    (28, 0xffffff3),
    (28, 0xffffff4),
    (28, 0xffffff5),
    (28, 0xffffff6),
    (28, 0xffffff7),
    (28, 0xffffff8),
    (28, 0xffffff9),
    (28, 0xffffffa),
    (28, 0xffffffb),
    (6, 0x14),
    (10, 0x3f8),
    (10, 0x3f9),
    (12, 0xffa),
    (13, 0x1ff9),
    (6, 0x15),
    (8, 0xf8),
    (11, 0x7fa),
    (10, 0x3fa),
    (10, 0x3fb),
    (8, 0xf9),
    (11, 0x7fb),
    (8, 0xfa),
    (6, 0x16),
    (6, 0x17),
    (6, 0x18),
    (5, 0x0),
    (5, 0x1),
    (5, 0x2),
    (6, 0x19),
    (6, 0x1a),
    (6, 0x1b),
    (6, 0x1c),
    (6, 0x1d),
    (6, 0x1e),
    (6, 0x1f),
    (7, 0x5c),
    (8, 0xfb),
    (15, 0x7ffc),
    (6, 0x20),
    (12, 0xffb),
    (10, 0x3fc),
    (13, 0x1ffa),
    (6, 0x21),
    (7, 0x5d),
    (7, 0x5e),
    (7, 0x5f),
    (7, 0x60),
    (7, 0x61),
    (7, 0x62),
    (7, 0x63),
    (7, 0x64),
    (7, 0x65),
    (7, 0x66),
    (7, 0x67),
    (7, 0x68),
    (7, 0x69),
    (7, 0x6a),
    (7, 0x6b),
    (7, 0x6c),
    (7, 0x6d),
    (7, 0x6e),
    (7, 0x6f),
    (7, 0x70),
    (7, 0x71),
    (7, 0x72),
    (8, 0xfc),
    (7, 0x73),
    (8, 0xfd),
    (13, 0x1ffb),
    (19, 0x7fff0),
    (13, 0x1ffc),
    (14, 0x3ffc),
    (6, 0x22),
    (15, 0x7ffd),
    (5, 0x3),
    (6, 0x23),
    (5, 0x4),
    (6, 0x24),
    (5, 0x5),
    (6, 0x25),
    (6, 0x26),
    (6, 0x27),
    (5, 0x6),
    (7, 0x74),
    (7, 0x75),
    (6, 0x28),
    (6, 0x29),
    (6, 0x2a),
    (5, 0x7),
    (6, 0x2b),
    (7, 0x76),
    (6, 0x2c),
    (5, 0x8),
    (5, 0x9),
    (6, 0x2d),
    (7, 0x77),
    (7, 0x78),
    (7, 0x79),
    (7, 0x7a),
    (7, 0x7b),
    (15, 0x7ffe),
    (11, 0x7fc),
    (14, 0x3ffd),
    (13, 0x1ffd),
    (28, 0xffffffc),
    (20, 0xfffe6),
    (22, 0x3fffd2),
    (20, 0xfffe7),
    (20, 0xfffe8),
    (22, 0x3fffd3),
    (22, 0x3fffd4),
    (22, 0x3fffd5),
    (23, 0x7fffd9),
    (22, 0x3fffd6),
    (23, 0x7fffda),
    (23, 0x7fffdb),
    (23, 0x7fffdc),
    (23, 0x7fffdd),
    (23, 0x7fffde),
    (24, 0xffffeb),
    (23, 0x7fffdf),
    (24, 0xffffec),
    (24, 0xffffed),
    (22, 0x3fffd7),
    (23, 0x7fffe0),
    (24, 0xffffee),
    (23, 0x7fffe1),
    (23, 0x7fffe2),
    (23, 0x7fffe3),
    (23, 0x7fffe4),
    (21, 0x1fffdc),
    (22, 0x3fffd8),
    (23, 0x7fffe5),
    (22, 0x3fffd9),
    (23, 0x7fffe6),
    (23, 0x7fffe7),
    (24, 0xffffef),
    (22, 0x3fffda),
    (21, 0x1fffdd),
    (20, 0xfffe9),
    (22, 0x3fffdb),
    (22, 0x3fffdc),
    (23, 0x7fffe8),
    (23, 0x7fffe9),
    (21, 0x1fffde),
    (23, 0x7fffea),
    (22, 0x3fffdd),
    (22, 0x3fffde),
    (24, 0xfffff0),
    (21, 0x1fffdf),
    (22, 0x3fffdf),
    (23, 0x7fffeb),
    (23, 0x7fffec),
    (21, 0x1fffe0),
    (21, 0x1fffe1),
    (22, 0x3fffe0),
    (21, 0x1fffe2),
    (23, 0x7fffed),
    (22, 0x3fffe1),
    (23, 0x7fffee),
    (23, 0x7fffef),
    (20, 0xfffea),
    (22, 0x3fffe2),
    (22, 0x3fffe3),
    (22, 0x3fffe4),
    (23, 0x7ffff0),
    (22, 0x3fffe5),
    (22, 0x3fffe6),
    (23, 0x7ffff1),
    (26, 0x3ffffe0),
    (26, 0x3ffffe1),
    (20, 0xfffeb),
    (19, 0x7fff1),
    (22, 0x3fffe7),
    (23, 0x7ffff2),
    (22, 0x3fffe8),
    (25, 0x1ffffec),
    (26, 0x3ffffe2),
    (26, 0x3ffffe3),
    (26, 0x3ffffe4),
    (27, 0x7ffffde),
    (27, 0x7ffffdf),
    (26, 0x3ffffe5),
    (24, 0xfffff1),
    (25, 0x1ffffed),
    (19, 0x7fff2),
    (21, 0x1fffe3),
    (26, 0x3ffffe6),
    (27, 0x7ffffe0),
    (27, 0x7ffffe1),
    (26, 0x3ffffe7),
    (27, 0x7ffffe2),
    (24, 0xfffff2),
    (21, 0x1fffe4),
    (21, 0x1fffe5),
    (26, 0x3ffffe8),
    (26, 0x3ffffe9),
    (28, 0xffffffd),
    (27, 0x7ffffe3),
    (27, 0x7ffffe4),
    (27, 0x7ffffe5),
    (20, 0xfffec),
    (24, 0xfffff3),
    (20, 0xfffed),
    (21, 0x1fffe6),
    (22, 0x3fffe9),
    (21, 0x1fffe7),
    (21, 0x1fffe8),
    (23, 0x7ffff3),
    (22, 0x3fffea),
    (22, 0x3fffeb),
    (25, 0x1ffffee),
    (25, 0x1ffffef),
    (24, 0xfffff4),
    (24, 0xfffff5),
    (26, 0x3ffffea),
    (23, 0x7ffff4),
    (26, 0x3ffffeb),
    (27, 0x7ffffe6),
    (26, 0x3ffffec),
    (26, 0x3ffffed),
    (27, 0x7ffffe7),
    (27, 0x7ffffe8),
    (27, 0x7ffffe9),
    (27, 0x7ffffea),
    (27, 0x7ffffeb),
    (28, 0xffffffe),
    (27, 0x7ffffec),
    (27, 0x7ffffed),
    (27, 0x7ffffee),
    (27, 0x7ffffef),
    (27, 0x7fffff0),
    (26, 0x3ffffee),
    (30, 0x3fffffff),
];

/// The multi-level decoding table for huffman decoder.
static DECODE_TABLE: [[(usize, u8, u8); 16]; 256] = [
    // 0
    [
        // (next-state, byte, flags).
        (4, 0, 0x00),
        (5, 0, 0x00),
        (7, 0, 0x00),
        (8, 0, 0x00),
        (11, 0, 0x00),
        (12, 0, 0x00),
        (16, 0, 0x00),
        (19, 0, 0x00),
        (25, 0, 0x00),
        (28, 0, 0x00),
        (32, 0, 0x00),
        (35, 0, 0x00),
        (42, 0, 0x00),
        (49, 0, 0x00),
        (57, 0, 0x00),
        (64, 0, 0x01),
    ],
    // 1
    [
        (0, 48, 0x02),
        (0, 49, 0x02),
        (0, 50, 0x02),
        (0, 97, 0x02),
        (0, 99, 0x02),
        (0, 101, 0x02),
        (0, 105, 0x02),
        (0, 111, 0x02),
        (0, 115, 0x02),
        (0, 116, 0x02),
        (13, 0, 0x00),
        (14, 0, 0x00),
        (17, 0, 0x00),
        (18, 0, 0x00),
        (20, 0, 0x00),
        (21, 0, 0x00),
    ],
    // 2
    [
        (1, 48, 0x02),
        (22, 48, 0x03),
        (1, 49, 0x02),
        (22, 49, 0x03),
        (1, 50, 0x02),
        (22, 50, 0x03),
        (1, 97, 0x02),
        (22, 97, 0x03),
        (1, 99, 0x02),
        (22, 99, 0x03),
        (1, 101, 0x02),
        (22, 101, 0x03),
        (1, 105, 0x02),
        (22, 105, 0x03),
        (1, 111, 0x02),
        (22, 111, 0x03),
    ],
    // 3
    [
        (2, 48, 0x02),
        (9, 48, 0x02),
        (23, 48, 0x02),
        (40, 48, 0x03),
        (2, 49, 0x02),
        (9, 49, 0x02),
        (23, 49, 0x02),
        (40, 49, 0x03),
        (2, 50, 0x02),
        (9, 50, 0x02),
        (23, 50, 0x02),
        (40, 50, 0x03),
        (2, 97, 0x02),
        (9, 97, 0x02),
        (23, 97, 0x02),
        (40, 97, 0x03),
    ],
    // 4
    [
        (3, 48, 0x02),
        (6, 48, 0x02),
        (10, 48, 0x02),
        (15, 48, 0x02),
        (24, 48, 0x02),
        (31, 48, 0x02),
        (41, 48, 0x02),
        (56, 48, 0x03),
        (3, 49, 0x02),
        (6, 49, 0x02),
        (10, 49, 0x02),
        (15, 49, 0x02),
        (24, 49, 0x02),
        (31, 49, 0x02),
        (41, 49, 0x02),
        (56, 49, 0x03),
    ],
    // 5
    [
        (3, 50, 0x02),
        (6, 50, 0x02),
        (10, 50, 0x02),
        (15, 50, 0x02),
        (24, 50, 0x02),
        (31, 50, 0x02),
        (41, 50, 0x02),
        (56, 50, 0x03),
        (3, 97, 0x02),
        (6, 97, 0x02),
        (10, 97, 0x02),
        (15, 97, 0x02),
        (24, 97, 0x02),
        (31, 97, 0x02),
        (41, 97, 0x02),
        (56, 97, 0x03),
    ],
    // 6
    [
        (2, 99, 0x02),
        (9, 99, 0x02),
        (23, 99, 0x02),
        (40, 99, 0x03),
        (2, 101, 0x02),
        (9, 101, 0x02),
        (23, 101, 0x02),
        (40, 101, 0x03),
        (2, 105, 0x02),
        (9, 105, 0x02),
        (23, 105, 0x02),
        (40, 105, 0x03),
        (2, 111, 0x02),
        (9, 111, 0x02),
        (23, 111, 0x02),
        (40, 111, 0x03),
    ],
    // 7
    [
        (3, 99, 0x02),
        (6, 99, 0x02),
        (10, 99, 0x02),
        (15, 99, 0x02),
        (24, 99, 0x02),
        (31, 99, 0x02),
        (41, 99, 0x02),
        (56, 99, 0x03),
        (3, 101, 0x02),
        (6, 101, 0x02),
        (10, 101, 0x02),
        (15, 101, 0x02),
        (24, 101, 0x02),
        (31, 101, 0x02),
        (41, 101, 0x02),
        (56, 101, 0x03),
    ],
    // 8
    [
        (3, 105, 0x02),
        (6, 105, 0x02),
        (10, 105, 0x02),
        (15, 105, 0x02),
        (24, 105, 0x02),
        (31, 105, 0x02),
        (41, 105, 0x02),
        (56, 105, 0x03),
        (3, 111, 0x02),
        (6, 111, 0x02),
        (10, 111, 0x02),
        (15, 111, 0x02),
        (24, 111, 0x02),
        (31, 111, 0x02),
        (41, 111, 0x02),
        (56, 111, 0x03),
    ],
    // 9
    [
        (1, 115, 0x02),
        (22, 115, 0x03),
        (1, 116, 0x02),
        (22, 116, 0x03),
        (0, 32, 0x02),
        (0, 37, 0x02),
        (0, 45, 0x02),
        (0, 46, 0x02),
        (0, 47, 0x02),
        (0, 51, 0x02),
        (0, 52, 0x02),
        (0, 53, 0x02),
        (0, 54, 0x02),
        (0, 55, 0x02),
        (0, 56, 0x02),
        (0, 57, 0x02),
    ],
    // 10
    [
        (2, 115, 0x02),
        (9, 115, 0x02),
        (23, 115, 0x02),
        (40, 115, 0x03),
        (2, 116, 0x02),
        (9, 116, 0x02),
        (23, 116, 0x02),
        (40, 116, 0x03),
        (1, 32, 0x02),
        (22, 32, 0x03),
        (1, 37, 0x02),
        (22, 37, 0x03),
        (1, 45, 0x02),
        (22, 45, 0x03),
        (1, 46, 0x02),
        (22, 46, 0x03),
    ],
    // 11
    [
        (3, 115, 0x02),
        (6, 115, 0x02),
        (10, 115, 0x02),
        (15, 115, 0x02),
        (24, 115, 0x02),
        (31, 115, 0x02),
        (41, 115, 0x02),
        (56, 115, 0x03),
        (3, 116, 0x02),
        (6, 116, 0x02),
        (10, 116, 0x02),
        (15, 116, 0x02),
        (24, 116, 0x02),
        (31, 116, 0x02),
        (41, 116, 0x02),
        (56, 116, 0x03),
    ],
    // 12
    [
        (2, 32, 0x02),
        (9, 32, 0x02),
        (23, 32, 0x02),
        (40, 32, 0x03),
        (2, 37, 0x02),
        (9, 37, 0x02),
        (23, 37, 0x02),
        (40, 37, 0x03),
        (2, 45, 0x02),
        (9, 45, 0x02),
        (23, 45, 0x02),
        (40, 45, 0x03),
        (2, 46, 0x02),
        (9, 46, 0x02),
        (23, 46, 0x02),
        (40, 46, 0x03),
    ],
    // 13
    [
        (3, 32, 0x02),
        (6, 32, 0x02),
        (10, 32, 0x02),
        (15, 32, 0x02),
        (24, 32, 0x02),
        (31, 32, 0x02),
        (41, 32, 0x02),
        (56, 32, 0x03),
        (3, 37, 0x02),
        (6, 37, 0x02),
        (10, 37, 0x02),
        (15, 37, 0x02),
        (24, 37, 0x02),
        (31, 37, 0x02),
        (41, 37, 0x02),
        (56, 37, 0x03),
    ],
    // 14
    [
        (3, 45, 0x02),
        (6, 45, 0x02),
        (10, 45, 0x02),
        (15, 45, 0x02),
        (24, 45, 0x02),
        (31, 45, 0x02),
        (41, 45, 0x02),
        (56, 45, 0x03),
        (3, 46, 0x02),
        (6, 46, 0x02),
        (10, 46, 0x02),
        (15, 46, 0x02),
        (24, 46, 0x02),
        (31, 46, 0x02),
        (41, 46, 0x02),
        (56, 46, 0x03),
    ],
    // 15
    [
        (1, 47, 0x02),
        (22, 47, 0x03),
        (1, 51, 0x02),
        (22, 51, 0x03),
        (1, 52, 0x02),
        (22, 52, 0x03),
        (1, 53, 0x02),
        (22, 53, 0x03),
        (1, 54, 0x02),
        (22, 54, 0x03),
        (1, 55, 0x02),
        (22, 55, 0x03),
        (1, 56, 0x02),
        (22, 56, 0x03),
        (1, 57, 0x02),
        (22, 57, 0x03),
    ],
    // 16
    [
        (2, 47, 0x02),
        (9, 47, 0x02),
        (23, 47, 0x02),
        (40, 47, 0x03),
        (2, 51, 0x02),
        (9, 51, 0x02),
        (23, 51, 0x02),
        (40, 51, 0x03),
        (2, 52, 0x02),
        (9, 52, 0x02),
        (23, 52, 0x02),
        (40, 52, 0x03),
        (2, 53, 0x02),
        (9, 53, 0x02),
        (23, 53, 0x02),
        (40, 53, 0x03),
    ],
    // 17
    [
        (3, 47, 0x02),
        (6, 47, 0x02),
        (10, 47, 0x02),
        (15, 47, 0x02),
        (24, 47, 0x02),
        (31, 47, 0x02),
        (41, 47, 0x02),
        (56, 47, 0x03),
        (3, 51, 0x02),
        (6, 51, 0x02),
        (10, 51, 0x02),
        (15, 51, 0x02),
        (24, 51, 0x02),
        (31, 51, 0x02),
        (41, 51, 0x02),
        (56, 51, 0x03),
    ],
    // 18
    [
        (3, 52, 0x02),
        (6, 52, 0x02),
        (10, 52, 0x02),
        (15, 52, 0x02),
        (24, 52, 0x02),
        (31, 52, 0x02),
        (41, 52, 0x02),
        (56, 52, 0x03),
        (3, 53, 0x02),
        (6, 53, 0x02),
        (10, 53, 0x02),
        (15, 53, 0x02),
        (24, 53, 0x02),
        (31, 53, 0x02),
        (41, 53, 0x02),
        (56, 53, 0x03),
    ],
    // 19
    [
        (2, 54, 0x02),
        (9, 54, 0x02),
        (23, 54, 0x02),
        (40, 54, 0x03),
        (2, 55, 0x02),
        (9, 55, 0x02),
        (23, 55, 0x02),
        (40, 55, 0x03),
        (2, 56, 0x02),
        (9, 56, 0x02),
        (23, 56, 0x02),
        (40, 56, 0x03),
        (2, 57, 0x02),
        (9, 57, 0x02),
        (23, 57, 0x02),
        (40, 57, 0x03),
    ],
    // 20
    [
        (3, 54, 0x02),
        (6, 54, 0x02),
        (10, 54, 0x02),
        (15, 54, 0x02),
        (24, 54, 0x02),
        (31, 54, 0x02),
        (41, 54, 0x02),
        (56, 54, 0x03),
        (3, 55, 0x02),
        (6, 55, 0x02),
        (10, 55, 0x02),
        (15, 55, 0x02),
        (24, 55, 0x02),
        (31, 55, 0x02),
        (41, 55, 0x02),
        (56, 55, 0x03),
    ],
    // 21
    [
        (3, 56, 0x02),
        (6, 56, 0x02),
        (10, 56, 0x02),
        (15, 56, 0x02),
        (24, 56, 0x02),
        (31, 56, 0x02),
        (41, 56, 0x02),
        (56, 56, 0x03),
        (3, 57, 0x02),
        (6, 57, 0x02),
        (10, 57, 0x02),
        (15, 57, 0x02),
        (24, 57, 0x02),
        (31, 57, 0x02),
        (41, 57, 0x02),
        (56, 57, 0x03),
    ],
    // 22
    [
        (26, 0, 0x00),
        (27, 0, 0x00),
        (29, 0, 0x00),
        (30, 0, 0x00),
        (33, 0, 0x00),
        (34, 0, 0x00),
        (36, 0, 0x00),
        (37, 0, 0x00),
        (43, 0, 0x00),
        (46, 0, 0x00),
        (50, 0, 0x00),
        (53, 0, 0x00),
        (58, 0, 0x00),
        (61, 0, 0x00),
        (65, 0, 0x00),
        (68, 0, 0x01),
    ],
    // 23
    [
        (0, 61, 0x02),
        (0, 65, 0x02),
        (0, 95, 0x02),
        (0, 98, 0x02),
        (0, 100, 0x02),
        (0, 102, 0x02),
        (0, 103, 0x02),
        (0, 104, 0x02),
        (0, 108, 0x02),
        (0, 109, 0x02),
        (0, 110, 0x02),
        (0, 112, 0x02),
        (0, 114, 0x02),
        (0, 117, 0x02),
        (38, 0, 0x00),
        (39, 0, 0x00),
    ],
    // 24
    [
        (1, 61, 0x02),
        (22, 61, 0x03),
        (1, 65, 0x02),
        (22, 65, 0x03),
        (1, 95, 0x02),
        (22, 95, 0x03),
        (1, 98, 0x02),
        (22, 98, 0x03),
        (1, 100, 0x02),
        (22, 100, 0x03),
        (1, 102, 0x02),
        (22, 102, 0x03),
        (1, 103, 0x02),
        (22, 103, 0x03),
        (1, 104, 0x02),
        (22, 104, 0x03),
    ],
    // 25
    [
        (2, 61, 0x02),
        (9, 61, 0x02),
        (23, 61, 0x02),
        (40, 61, 0x03),
        (2, 65, 0x02),
        (9, 65, 0x02),
        (23, 65, 0x02),
        (40, 65, 0x03),
        (2, 95, 0x02),
        (9, 95, 0x02),
        (23, 95, 0x02),
        (40, 95, 0x03),
        (2, 98, 0x02),
        (9, 98, 0x02),
        (23, 98, 0x02),
        (40, 98, 0x03),
    ],
    // 26
    [
        (3, 61, 0x02),
        (6, 61, 0x02),
        (10, 61, 0x02),
        (15, 61, 0x02),
        (24, 61, 0x02),
        (31, 61, 0x02),
        (41, 61, 0x02),
        (56, 61, 0x03),
        (3, 65, 0x02),
        (6, 65, 0x02),
        (10, 65, 0x02),
        (15, 65, 0x02),
        (24, 65, 0x02),
        (31, 65, 0x02),
        (41, 65, 0x02),
        (56, 65, 0x03),
    ],
    // 27
    [
        (3, 95, 0x02),
        (6, 95, 0x02),
        (10, 95, 0x02),
        (15, 95, 0x02),
        (24, 95, 0x02),
        (31, 95, 0x02),
        (41, 95, 0x02),
        (56, 95, 0x03),
        (3, 98, 0x02),
        (6, 98, 0x02),
        (10, 98, 0x02),
        (15, 98, 0x02),
        (24, 98, 0x02),
        (31, 98, 0x02),
        (41, 98, 0x02),
        (56, 98, 0x03),
    ],
    // 28
    [
        (2, 100, 0x02),
        (9, 100, 0x02),
        (23, 100, 0x02),
        (40, 100, 0x03),
        (2, 102, 0x02),
        (9, 102, 0x02),
        (23, 102, 0x02),
        (40, 102, 0x03),
        (2, 103, 0x02),
        (9, 103, 0x02),
        (23, 103, 0x02),
        (40, 103, 0x03),
        (2, 104, 0x02),
        (9, 104, 0x02),
        (23, 104, 0x02),
        (40, 104, 0x03),
    ],
    // 29
    [
        (3, 100, 0x02),
        (6, 100, 0x02),
        (10, 100, 0x02),
        (15, 100, 0x02),
        (24, 100, 0x02),
        (31, 100, 0x02),
        (41, 100, 0x02),
        (56, 100, 0x03),
        (3, 102, 0x02),
        (6, 102, 0x02),
        (10, 102, 0x02),
        (15, 102, 0x02),
        (24, 102, 0x02),
        (31, 102, 0x02),
        (41, 102, 0x02),
        (56, 102, 0x03),
    ],
    // 30
    [
        (3, 103, 0x02),
        (6, 103, 0x02),
        (10, 103, 0x02),
        (15, 103, 0x02),
        (24, 103, 0x02),
        (31, 103, 0x02),
        (41, 103, 0x02),
        (56, 103, 0x03),
        (3, 104, 0x02),
        (6, 104, 0x02),
        (10, 104, 0x02),
        (15, 104, 0x02),
        (24, 104, 0x02),
        (31, 104, 0x02),
        (41, 104, 0x02),
        (56, 104, 0x03),
    ],
    // 31
    [
        (1, 108, 0x02),
        (22, 108, 0x03),
        (1, 109, 0x02),
        (22, 109, 0x03),
        (1, 110, 0x02),
        (22, 110, 0x03),
        (1, 112, 0x02),
        (22, 112, 0x03),
        (1, 114, 0x02),
        (22, 114, 0x03),
        (1, 117, 0x02),
        (22, 117, 0x03),
        (0, 58, 0x02),
        (0, 66, 0x02),
        (0, 67, 0x02),
        (0, 68, 0x02),
    ],
    // 32
    [
        (2, 108, 0x02),
        (9, 108, 0x02),
        (23, 108, 0x02),
        (40, 108, 0x03),
        (2, 109, 0x02),
        (9, 109, 0x02),
        (23, 109, 0x02),
        (40, 109, 0x03),
        (2, 110, 0x02),
        (9, 110, 0x02),
        (23, 110, 0x02),
        (40, 110, 0x03),
        (2, 112, 0x02),
        (9, 112, 0x02),
        (23, 112, 0x02),
        (40, 112, 0x03),
    ],
    // 33
    [
        (3, 108, 0x02),
        (6, 108, 0x02),
        (10, 108, 0x02),
        (15, 108, 0x02),
        (24, 108, 0x02),
        (31, 108, 0x02),
        (41, 108, 0x02),
        (56, 108, 0x03),
        (3, 109, 0x02),
        (6, 109, 0x02),
        (10, 109, 0x02),
        (15, 109, 0x02),
        (24, 109, 0x02),
        (31, 109, 0x02),
        (41, 109, 0x02),
        (56, 109, 0x03),
    ],
    // 34
    [
        (3, 110, 0x02),
        (6, 110, 0x02),
        (10, 110, 0x02),
        (15, 110, 0x02),
        (24, 110, 0x02),
        (31, 110, 0x02),
        (41, 110, 0x02),
        (56, 110, 0x03),
        (3, 112, 0x02),
        (6, 112, 0x02),
        (10, 112, 0x02),
        (15, 112, 0x02),
        (24, 112, 0x02),
        (31, 112, 0x02),
        (41, 112, 0x02),
        (56, 112, 0x03),
    ],
    // 35
    [
        (2, 114, 0x02),
        (9, 114, 0x02),
        (23, 114, 0x02),
        (40, 114, 0x03),
        (2, 117, 0x02),
        (9, 117, 0x02),
        (23, 117, 0x02),
        (40, 117, 0x03),
        (1, 58, 0x02),
        (22, 58, 0x03),
        (1, 66, 0x02),
        (22, 66, 0x03),
        (1, 67, 0x02),
        (22, 67, 0x03),
        (1, 68, 0x02),
        (22, 68, 0x03),
    ],
    // 36
    [
        (3, 114, 0x02),
        (6, 114, 0x02),
        (10, 114, 0x02),
        (15, 114, 0x02),
        (24, 114, 0x02),
        (31, 114, 0x02),
        (41, 114, 0x02),
        (56, 114, 0x03),
        (3, 117, 0x02),
        (6, 117, 0x02),
        (10, 117, 0x02),
        (15, 117, 0x02),
        (24, 117, 0x02),
        (31, 117, 0x02),
        (41, 117, 0x02),
        (56, 117, 0x03),
    ],
    // 37
    [
        (2, 58, 0x02),
        (9, 58, 0x02),
        (23, 58, 0x02),
        (40, 58, 0x03),
        (2, 66, 0x02),
        (9, 66, 0x02),
        (23, 66, 0x02),
        (40, 66, 0x03),
        (2, 67, 0x02),
        (9, 67, 0x02),
        (23, 67, 0x02),
        (40, 67, 0x03),
        (2, 68, 0x02),
        (9, 68, 0x02),
        (23, 68, 0x02),
        (40, 68, 0x03),
    ],
    // 38
    [
        (3, 58, 0x02),
        (6, 58, 0x02),
        (10, 58, 0x02),
        (15, 58, 0x02),
        (24, 58, 0x02),
        (31, 58, 0x02),
        (41, 58, 0x02),
        (56, 58, 0x03),
        (3, 66, 0x02),
        (6, 66, 0x02),
        (10, 66, 0x02),
        (15, 66, 0x02),
        (24, 66, 0x02),
        (31, 66, 0x02),
        (41, 66, 0x02),
        (56, 66, 0x03),
    ],
    // 39
    [
        (3, 67, 0x02),
        (6, 67, 0x02),
        (10, 67, 0x02),
        (15, 67, 0x02),
        (24, 67, 0x02),
        (31, 67, 0x02),
        (41, 67, 0x02),
        (56, 67, 0x03),
        (3, 68, 0x02),
        (6, 68, 0x02),
        (10, 68, 0x02),
        (15, 68, 0x02),
        (24, 68, 0x02),
        (31, 68, 0x02),
        (41, 68, 0x02),
        (56, 68, 0x03),
    ],
    // 40
    [
        (44, 0, 0x00),
        (45, 0, 0x00),
        (47, 0, 0x00),
        (48, 0, 0x00),
        (51, 0, 0x00),
        (52, 0, 0x00),
        (54, 0, 0x00),
        (55, 0, 0x00),
        (59, 0, 0x00),
        (60, 0, 0x00),
        (62, 0, 0x00),
        (63, 0, 0x00),
        (66, 0, 0x00),
        (67, 0, 0x00),
        (69, 0, 0x00),
        (72, 0, 0x01),
    ],
    // 41
    [
        (0, 69, 0x02),
        (0, 70, 0x02),
        (0, 71, 0x02),
        (0, 72, 0x02),
        (0, 73, 0x02),
        (0, 74, 0x02),
        (0, 75, 0x02),
        (0, 76, 0x02),
        (0, 77, 0x02),
        (0, 78, 0x02),
        (0, 79, 0x02),
        (0, 80, 0x02),
        (0, 81, 0x02),
        (0, 82, 0x02),
        (0, 83, 0x02),
        (0, 84, 0x02),
    ],
    // 42
    [
        (1, 69, 0x02),
        (22, 69, 0x03),
        (1, 70, 0x02),
        (22, 70, 0x03),
        (1, 71, 0x02),
        (22, 71, 0x03),
        (1, 72, 0x02),
        (22, 72, 0x03),
        (1, 73, 0x02),
        (22, 73, 0x03),
        (1, 74, 0x02),
        (22, 74, 0x03),
        (1, 75, 0x02),
        (22, 75, 0x03),
        (1, 76, 0x02),
        (22, 76, 0x03),
    ],
    // 43
    [
        (2, 69, 0x02),
        (9, 69, 0x02),
        (23, 69, 0x02),
        (40, 69, 0x03),
        (2, 70, 0x02),
        (9, 70, 0x02),
        (23, 70, 0x02),
        (40, 70, 0x03),
        (2, 71, 0x02),
        (9, 71, 0x02),
        (23, 71, 0x02),
        (40, 71, 0x03),
        (2, 72, 0x02),
        (9, 72, 0x02),
        (23, 72, 0x02),
        (40, 72, 0x03),
    ],
    // 44
    [
        (3, 69, 0x02),
        (6, 69, 0x02),
        (10, 69, 0x02),
        (15, 69, 0x02),
        (24, 69, 0x02),
        (31, 69, 0x02),
        (41, 69, 0x02),
        (56, 69, 0x03),
        (3, 70, 0x02),
        (6, 70, 0x02),
        (10, 70, 0x02),
        (15, 70, 0x02),
        (24, 70, 0x02),
        (31, 70, 0x02),
        (41, 70, 0x02),
        (56, 70, 0x03),
    ],
    // 45
    [
        (3, 71, 0x02),
        (6, 71, 0x02),
        (10, 71, 0x02),
        (15, 71, 0x02),
        (24, 71, 0x02),
        (31, 71, 0x02),
        (41, 71, 0x02),
        (56, 71, 0x03),
        (3, 72, 0x02),
        (6, 72, 0x02),
        (10, 72, 0x02),
        (15, 72, 0x02),
        (24, 72, 0x02),
        (31, 72, 0x02),
        (41, 72, 0x02),
        (56, 72, 0x03),
    ],
    // 46
    [
        (2, 73, 0x02),
        (9, 73, 0x02),
        (23, 73, 0x02),
        (40, 73, 0x03),
        (2, 74, 0x02),
        (9, 74, 0x02),
        (23, 74, 0x02),
        (40, 74, 0x03),
        (2, 75, 0x02),
        (9, 75, 0x02),
        (23, 75, 0x02),
        (40, 75, 0x03),
        (2, 76, 0x02),
        (9, 76, 0x02),
        (23, 76, 0x02),
        (40, 76, 0x03),
    ],
    // 47
    [
        (3, 73, 0x02),
        (6, 73, 0x02),
        (10, 73, 0x02),
        (15, 73, 0x02),
        (24, 73, 0x02),
        (31, 73, 0x02),
        (41, 73, 0x02),
        (56, 73, 0x03),
        (3, 74, 0x02),
        (6, 74, 0x02),
        (10, 74, 0x02),
        (15, 74, 0x02),
        (24, 74, 0x02),
        (31, 74, 0x02),
        (41, 74, 0x02),
        (56, 74, 0x03),
    ],
    // 48
    [
        (3, 75, 0x02),
        (6, 75, 0x02),
        (10, 75, 0x02),
        (15, 75, 0x02),
        (24, 75, 0x02),
        (31, 75, 0x02),
        (41, 75, 0x02),
        (56, 75, 0x03),
        (3, 76, 0x02),
        (6, 76, 0x02),
        (10, 76, 0x02),
        (15, 76, 0x02),
        (24, 76, 0x02),
        (31, 76, 0x02),
        (41, 76, 0x02),
        (56, 76, 0x03),
    ],
    // 49
    [
        (1, 77, 0x02),
        (22, 77, 0x03),
        (1, 78, 0x02),
        (22, 78, 0x03),
        (1, 79, 0x02),
        (22, 79, 0x03),
        (1, 80, 0x02),
        (22, 80, 0x03),
        (1, 81, 0x02),
        (22, 81, 0x03),
        (1, 82, 0x02),
        (22, 82, 0x03),
        (1, 83, 0x02),
        (22, 83, 0x03),
        (1, 84, 0x02),
        (22, 84, 0x03),
    ],
    // 50
    [
        (2, 77, 0x02),
        (9, 77, 0x02),
        (23, 77, 0x02),
        (40, 77, 0x03),
        (2, 78, 0x02),
        (9, 78, 0x02),
        (23, 78, 0x02),
        (40, 78, 0x03),
        (2, 79, 0x02),
        (9, 79, 0x02),
        (23, 79, 0x02),
        (40, 79, 0x03),
        (2, 80, 0x02),
        (9, 80, 0x02),
        (23, 80, 0x02),
        (40, 80, 0x03),
    ],
    // 51
    [
        (3, 77, 0x02),
        (6, 77, 0x02),
        (10, 77, 0x02),
        (15, 77, 0x02),
        (24, 77, 0x02),
        (31, 77, 0x02),
        (41, 77, 0x02),
        (56, 77, 0x03),
        (3, 78, 0x02),
        (6, 78, 0x02),
        (10, 78, 0x02),
        (15, 78, 0x02),
        (24, 78, 0x02),
        (31, 78, 0x02),
        (41, 78, 0x02),
        (56, 78, 0x03),
    ],
    // 52
    [
        (3, 79, 0x02),
        (6, 79, 0x02),
        (10, 79, 0x02),
        (15, 79, 0x02),
        (24, 79, 0x02),
        (31, 79, 0x02),
        (41, 79, 0x02),
        (56, 79, 0x03),
        (3, 80, 0x02),
        (6, 80, 0x02),
        (10, 80, 0x02),
        (15, 80, 0x02),
        (24, 80, 0x02),
        (31, 80, 0x02),
        (41, 80, 0x02),
        (56, 80, 0x03),
    ],
    // 53
    [
        (2, 81, 0x02),
        (9, 81, 0x02),
        (23, 81, 0x02),
        (40, 81, 0x03),
        (2, 82, 0x02),
        (9, 82, 0x02),
        (23, 82, 0x02),
        (40, 82, 0x03),
        (2, 83, 0x02),
        (9, 83, 0x02),
        (23, 83, 0x02),
        (40, 83, 0x03),
        (2, 84, 0x02),
        (9, 84, 0x02),
        (23, 84, 0x02),
        (40, 84, 0x03),
    ],
    // 54
    [
        (3, 81, 0x02),
        (6, 81, 0x02),
        (10, 81, 0x02),
        (15, 81, 0x02),
        (24, 81, 0x02),
        (31, 81, 0x02),
        (41, 81, 0x02),
        (56, 81, 0x03),
        (3, 82, 0x02),
        (6, 82, 0x02),
        (10, 82, 0x02),
        (15, 82, 0x02),
        (24, 82, 0x02),
        (31, 82, 0x02),
        (41, 82, 0x02),
        (56, 82, 0x03),
    ],
    // 55
    [
        (3, 83, 0x02),
        (6, 83, 0x02),
        (10, 83, 0x02),
        (15, 83, 0x02),
        (24, 83, 0x02),
        (31, 83, 0x02),
        (41, 83, 0x02),
        (56, 83, 0x03),
        (3, 84, 0x02),
        (6, 84, 0x02),
        (10, 84, 0x02),
        (15, 84, 0x02),
        (24, 84, 0x02),
        (31, 84, 0x02),
        (41, 84, 0x02),
        (56, 84, 0x03),
    ],
    // 56
    [
        (0, 85, 0x02),
        (0, 86, 0x02),
        (0, 87, 0x02),
        (0, 89, 0x02),
        (0, 106, 0x02),
        (0, 107, 0x02),
        (0, 113, 0x02),
        (0, 118, 0x02),
        (0, 119, 0x02),
        (0, 120, 0x02),
        (0, 121, 0x02),
        (0, 122, 0x02),
        (70, 0, 0x00),
        (71, 0, 0x00),
        (73, 0, 0x00),
        (74, 0, 0x01),
    ],
    // 57
    [
        (1, 85, 0x02),
        (22, 85, 0x03),
        (1, 86, 0x02),
        (22, 86, 0x03),
        (1, 87, 0x02),
        (22, 87, 0x03),
        (1, 89, 0x02),
        (22, 89, 0x03),
        (1, 106, 0x02),
        (22, 106, 0x03),
        (1, 107, 0x02),
        (22, 107, 0x03),
        (1, 113, 0x02),
        (22, 113, 0x03),
        (1, 118, 0x02),
        (22, 118, 0x03),
    ],
    // 58
    [
        (2, 85, 0x02),
        (9, 85, 0x02),
        (23, 85, 0x02),
        (40, 85, 0x03),
        (2, 86, 0x02),
        (9, 86, 0x02),
        (23, 86, 0x02),
        (40, 86, 0x03),
        (2, 87, 0x02),
        (9, 87, 0x02),
        (23, 87, 0x02),
        (40, 87, 0x03),
        (2, 89, 0x02),
        (9, 89, 0x02),
        (23, 89, 0x02),
        (40, 89, 0x03),
    ],
    // 59
    [
        (3, 85, 0x02),
        (6, 85, 0x02),
        (10, 85, 0x02),
        (15, 85, 0x02),
        (24, 85, 0x02),
        (31, 85, 0x02),
        (41, 85, 0x02),
        (56, 85, 0x03),
        (3, 86, 0x02),
        (6, 86, 0x02),
        (10, 86, 0x02),
        (15, 86, 0x02),
        (24, 86, 0x02),
        (31, 86, 0x02),
        (41, 86, 0x02),
        (56, 86, 0x03),
    ],
    // 60
    [
        (3, 87, 0x02),
        (6, 87, 0x02),
        (10, 87, 0x02),
        (15, 87, 0x02),
        (24, 87, 0x02),
        (31, 87, 0x02),
        (41, 87, 0x02),
        (56, 87, 0x03),
        (3, 89, 0x02),
        (6, 89, 0x02),
        (10, 89, 0x02),
        (15, 89, 0x02),
        (24, 89, 0x02),
        (31, 89, 0x02),
        (41, 89, 0x02),
        (56, 89, 0x03),
    ],
    // 61
    [
        (2, 106, 0x02),
        (9, 106, 0x02),
        (23, 106, 0x02),
        (40, 106, 0x03),
        (2, 107, 0x02),
        (9, 107, 0x02),
        (23, 107, 0x02),
        (40, 107, 0x03),
        (2, 113, 0x02),
        (9, 113, 0x02),
        (23, 113, 0x02),
        (40, 113, 0x03),
        (2, 118, 0x02),
        (9, 118, 0x02),
        (23, 118, 0x02),
        (40, 118, 0x03),
    ],
    // 62
    [
        (3, 106, 0x02),
        (6, 106, 0x02),
        (10, 106, 0x02),
        (15, 106, 0x02),
        (24, 106, 0x02),
        (31, 106, 0x02),
        (41, 106, 0x02),
        (56, 106, 0x03),
        (3, 107, 0x02),
        (6, 107, 0x02),
        (10, 107, 0x02),
        (15, 107, 0x02),
        (24, 107, 0x02),
        (31, 107, 0x02),
        (41, 107, 0x02),
        (56, 107, 0x03),
    ],
    // 63
    [
        (3, 113, 0x02),
        (6, 113, 0x02),
        (10, 113, 0x02),
        (15, 113, 0x02),
        (24, 113, 0x02),
        (31, 113, 0x02),
        (41, 113, 0x02),
        (56, 113, 0x03),
        (3, 118, 0x02),
        (6, 118, 0x02),
        (10, 118, 0x02),
        (15, 118, 0x02),
        (24, 118, 0x02),
        (31, 118, 0x02),
        (41, 118, 0x02),
        (56, 118, 0x03),
    ],
    // 64
    [
        (1, 119, 0x02),
        (22, 119, 0x03),
        (1, 120, 0x02),
        (22, 120, 0x03),
        (1, 121, 0x02),
        (22, 121, 0x03),
        (1, 122, 0x02),
        (22, 122, 0x03),
        (0, 38, 0x02),
        (0, 42, 0x02),
        (0, 44, 0x02),
        (0, 59, 0x02),
        (0, 88, 0x02),
        (0, 90, 0x02),
        (75, 0, 0x00),
        (78, 0, 0x00),
    ],
    // 65
    [
        (2, 119, 0x02),
        (9, 119, 0x02),
        (23, 119, 0x02),
        (40, 119, 0x03),
        (2, 120, 0x02),
        (9, 120, 0x02),
        (23, 120, 0x02),
        (40, 120, 0x03),
        (2, 121, 0x02),
        (9, 121, 0x02),
        (23, 121, 0x02),
        (40, 121, 0x03),
        (2, 122, 0x02),
        (9, 122, 0x02),
        (23, 122, 0x02),
        (40, 122, 0x03),
    ],
    // 66
    [
        (3, 119, 0x02),
        (6, 119, 0x02),
        (10, 119, 0x02),
        (15, 119, 0x02),
        (24, 119, 0x02),
        (31, 119, 0x02),
        (41, 119, 0x02),
        (56, 119, 0x03),
        (3, 120, 0x02),
        (6, 120, 0x02),
        (10, 120, 0x02),
        (15, 120, 0x02),
        (24, 120, 0x02),
        (31, 120, 0x02),
        (41, 120, 0x02),
        (56, 120, 0x03),
    ],
    // 67
    [
        (3, 121, 0x02),
        (6, 121, 0x02),
        (10, 121, 0x02),
        (15, 121, 0x02),
        (24, 121, 0x02),
        (31, 121, 0x02),
        (41, 121, 0x02),
        (56, 121, 0x03),
        (3, 122, 0x02),
        (6, 122, 0x02),
        (10, 122, 0x02),
        (15, 122, 0x02),
        (24, 122, 0x02),
        (31, 122, 0x02),
        (41, 122, 0x02),
        (56, 122, 0x03),
    ],
    // 68
    [
        (1, 38, 0x02),
        (22, 38, 0x03),
        (1, 42, 0x02),
        (22, 42, 0x03),
        (1, 44, 0x02),
        (22, 44, 0x03),
        (1, 59, 0x02),
        (22, 59, 0x03),
        (1, 88, 0x02),
        (22, 88, 0x03),
        (1, 90, 0x02),
        (22, 90, 0x03),
        (76, 0, 0x00),
        (77, 0, 0x00),
        (79, 0, 0x00),
        (81, 0, 0x00),
    ],
    // 69
    [
        (2, 38, 0x02),
        (9, 38, 0x02),
        (23, 38, 0x02),
        (40, 38, 0x03),
        (2, 42, 0x02),
        (9, 42, 0x02),
        (23, 42, 0x02),
        (40, 42, 0x03),
        (2, 44, 0x02),
        (9, 44, 0x02),
        (23, 44, 0x02),
        (40, 44, 0x03),
        (2, 59, 0x02),
        (9, 59, 0x02),
        (23, 59, 0x02),
        (40, 59, 0x03),
    ],
    // 70
    [
        (3, 38, 0x02),
        (6, 38, 0x02),
        (10, 38, 0x02),
        (15, 38, 0x02),
        (24, 38, 0x02),
        (31, 38, 0x02),
        (41, 38, 0x02),
        (56, 38, 0x03),
        (3, 42, 0x02),
        (6, 42, 0x02),
        (10, 42, 0x02),
        (15, 42, 0x02),
        (24, 42, 0x02),
        (31, 42, 0x02),
        (41, 42, 0x02),
        (56, 42, 0x03),
    ],
    // 71
    [
        (3, 44, 0x02),
        (6, 44, 0x02),
        (10, 44, 0x02),
        (15, 44, 0x02),
        (24, 44, 0x02),
        (31, 44, 0x02),
        (41, 44, 0x02),
        (56, 44, 0x03),
        (3, 59, 0x02),
        (6, 59, 0x02),
        (10, 59, 0x02),
        (15, 59, 0x02),
        (24, 59, 0x02),
        (31, 59, 0x02),
        (41, 59, 0x02),
        (56, 59, 0x03),
    ],
    // 72
    [
        (2, 88, 0x02),
        (9, 88, 0x02),
        (23, 88, 0x02),
        (40, 88, 0x03),
        (2, 90, 0x02),
        (9, 90, 0x02),
        (23, 90, 0x02),
        (40, 90, 0x03),
        (0, 33, 0x02),
        (0, 34, 0x02),
        (0, 40, 0x02),
        (0, 41, 0x02),
        (0, 63, 0x02),
        (80, 0, 0x00),
        (82, 0, 0x00),
        (84, 0, 0x00),
    ],
    // 73
    [
        (3, 88, 0x02),
        (6, 88, 0x02),
        (10, 88, 0x02),
        (15, 88, 0x02),
        (24, 88, 0x02),
        (31, 88, 0x02),
        (41, 88, 0x02),
        (56, 88, 0x03),
        (3, 90, 0x02),
        (6, 90, 0x02),
        (10, 90, 0x02),
        (15, 90, 0x02),
        (24, 90, 0x02),
        (31, 90, 0x02),
        (41, 90, 0x02),
        (56, 90, 0x03),
    ],
    // 74
    [
        (1, 33, 0x02),
        (22, 33, 0x03),
        (1, 34, 0x02),
        (22, 34, 0x03),
        (1, 40, 0x02),
        (22, 40, 0x03),
        (1, 41, 0x02),
        (22, 41, 0x03),
        (1, 63, 0x02),
        (22, 63, 0x03),
        (0, 39, 0x02),
        (0, 43, 0x02),
        (0, 124, 0x02),
        (83, 0, 0x00),
        (85, 0, 0x00),
        (88, 0, 0x00),
    ],
    // 75
    [
        (2, 33, 0x02),
        (9, 33, 0x02),
        (23, 33, 0x02),
        (40, 33, 0x03),
        (2, 34, 0x02),
        (9, 34, 0x02),
        (23, 34, 0x02),
        (40, 34, 0x03),
        (2, 40, 0x02),
        (9, 40, 0x02),
        (23, 40, 0x02),
        (40, 40, 0x03),
        (2, 41, 0x02),
        (9, 41, 0x02),
        (23, 41, 0x02),
        (40, 41, 0x03),
    ],
    // 76
    [
        (3, 33, 0x02),
        (6, 33, 0x02),
        (10, 33, 0x02),
        (15, 33, 0x02),
        (24, 33, 0x02),
        (31, 33, 0x02),
        (41, 33, 0x02),
        (56, 33, 0x03),
        (3, 34, 0x02),
        (6, 34, 0x02),
        (10, 34, 0x02),
        (15, 34, 0x02),
        (24, 34, 0x02),
        (31, 34, 0x02),
        (41, 34, 0x02),
        (56, 34, 0x03),
    ],
    // 77
    [
        (3, 40, 0x02),
        (6, 40, 0x02),
        (10, 40, 0x02),
        (15, 40, 0x02),
        (24, 40, 0x02),
        (31, 40, 0x02),
        (41, 40, 0x02),
        (56, 40, 0x03),
        (3, 41, 0x02),
        (6, 41, 0x02),
        (10, 41, 0x02),
        (15, 41, 0x02),
        (24, 41, 0x02),
        (31, 41, 0x02),
        (41, 41, 0x02),
        (56, 41, 0x03),
    ],
    // 78
    [
        (2, 63, 0x02),
        (9, 63, 0x02),
        (23, 63, 0x02),
        (40, 63, 0x03),
        (1, 39, 0x02),
        (22, 39, 0x03),
        (1, 43, 0x02),
        (22, 43, 0x03),
        (1, 124, 0x02),
        (22, 124, 0x03),
        (0, 35, 0x02),
        (0, 62, 0x02),
        (86, 0, 0x00),
        (87, 0, 0x00),
        (89, 0, 0x00),
        (90, 0, 0x00),
    ],
    // 79
    [
        (3, 63, 0x02),
        (6, 63, 0x02),
        (10, 63, 0x02),
        (15, 63, 0x02),
        (24, 63, 0x02),
        (31, 63, 0x02),
        (41, 63, 0x02),
        (56, 63, 0x03),
        (2, 39, 0x02),
        (9, 39, 0x02),
        (23, 39, 0x02),
        (40, 39, 0x03),
        (2, 43, 0x02),
        (9, 43, 0x02),
        (23, 43, 0x02),
        (40, 43, 0x03),
    ],
    // 80
    [
        (3, 39, 0x02),
        (6, 39, 0x02),
        (10, 39, 0x02),
        (15, 39, 0x02),
        (24, 39, 0x02),
        (31, 39, 0x02),
        (41, 39, 0x02),
        (56, 39, 0x03),
        (3, 43, 0x02),
        (6, 43, 0x02),
        (10, 43, 0x02),
        (15, 43, 0x02),
        (24, 43, 0x02),
        (31, 43, 0x02),
        (41, 43, 0x02),
        (56, 43, 0x03),
    ],
    // 81
    [
        (2, 124, 0x02),
        (9, 124, 0x02),
        (23, 124, 0x02),
        (40, 124, 0x03),
        (1, 35, 0x02),
        (22, 35, 0x03),
        (1, 62, 0x02),
        (22, 62, 0x03),
        (0, 0, 0x02),
        (0, 36, 0x02),
        (0, 64, 0x02),
        (0, 91, 0x02),
        (0, 93, 0x02),
        (0, 126, 0x02),
        (91, 0, 0x00),
        (92, 0, 0x00),
    ],
    // 82
    [
        (3, 124, 0x02),
        (6, 124, 0x02),
        (10, 124, 0x02),
        (15, 124, 0x02),
        (24, 124, 0x02),
        (31, 124, 0x02),
        (41, 124, 0x02),
        (56, 124, 0x03),
        (2, 35, 0x02),
        (9, 35, 0x02),
        (23, 35, 0x02),
        (40, 35, 0x03),
        (2, 62, 0x02),
        (9, 62, 0x02),
        (23, 62, 0x02),
        (40, 62, 0x03),
    ],
    // 83
    [
        (3, 35, 0x02),
        (6, 35, 0x02),
        (10, 35, 0x02),
        (15, 35, 0x02),
        (24, 35, 0x02),
        (31, 35, 0x02),
        (41, 35, 0x02),
        (56, 35, 0x03),
        (3, 62, 0x02),
        (6, 62, 0x02),
        (10, 62, 0x02),
        (15, 62, 0x02),
        (24, 62, 0x02),
        (31, 62, 0x02),
        (41, 62, 0x02),
        (56, 62, 0x03),
    ],
    // 84
    [
        (1, 0, 0x02),
        (22, 0, 0x03),
        (1, 36, 0x02),
        (22, 36, 0x03),
        (1, 64, 0x02),
        (22, 64, 0x03),
        (1, 91, 0x02),
        (22, 91, 0x03),
        (1, 93, 0x02),
        (22, 93, 0x03),
        (1, 126, 0x02),
        (22, 126, 0x03),
        (0, 94, 0x02),
        (0, 125, 0x02),
        (93, 0, 0x00),
        (94, 0, 0x00),
    ],
    // 85
    [
        (2, 0, 0x02),
        (9, 0, 0x02),
        (23, 0, 0x02),
        (40, 0, 0x03),
        (2, 36, 0x02),
        (9, 36, 0x02),
        (23, 36, 0x02),
        (40, 36, 0x03),
        (2, 64, 0x02),
        (9, 64, 0x02),
        (23, 64, 0x02),
        (40, 64, 0x03),
        (2, 91, 0x02),
        (9, 91, 0x02),
        (23, 91, 0x02),
        (40, 91, 0x03),
    ],
    // 86
    [
        (3, 0, 0x02),
        (6, 0, 0x02),
        (10, 0, 0x02),
        (15, 0, 0x02),
        (24, 0, 0x02),
        (31, 0, 0x02),
        (41, 0, 0x02),
        (56, 0, 0x03),
        (3, 36, 0x02),
        (6, 36, 0x02),
        (10, 36, 0x02),
        (15, 36, 0x02),
        (24, 36, 0x02),
        (31, 36, 0x02),
        (41, 36, 0x02),
        (56, 36, 0x03),
    ],
    // 87
    [
        (3, 64, 0x02),
        (6, 64, 0x02),
        (10, 64, 0x02),
        (15, 64, 0x02),
        (24, 64, 0x02),
        (31, 64, 0x02),
        (41, 64, 0x02),
        (56, 64, 0x03),
        (3, 91, 0x02),
        (6, 91, 0x02),
        (10, 91, 0x02),
        (15, 91, 0x02),
        (24, 91, 0x02),
        (31, 91, 0x02),
        (41, 91, 0x02),
        (56, 91, 0x03),
    ],
    // 88
    [
        (2, 93, 0x02),
        (9, 93, 0x02),
        (23, 93, 0x02),
        (40, 93, 0x03),
        (2, 126, 0x02),
        (9, 126, 0x02),
        (23, 126, 0x02),
        (40, 126, 0x03),
        (1, 94, 0x02),
        (22, 94, 0x03),
        (1, 125, 0x02),
        (22, 125, 0x03),
        (0, 60, 0x02),
        (0, 96, 0x02),
        (0, 123, 0x02),
        (95, 0, 0x00),
    ],
    // 89
    [
        (3, 93, 0x02),
        (6, 93, 0x02),
        (10, 93, 0x02),
        (15, 93, 0x02),
        (24, 93, 0x02),
        (31, 93, 0x02),
        (41, 93, 0x02),
        (56, 93, 0x03),
        (3, 126, 0x02),
        (6, 126, 0x02),
        (10, 126, 0x02),
        (15, 126, 0x02),
        (24, 126, 0x02),
        (31, 126, 0x02),
        (41, 126, 0x02),
        (56, 126, 0x03),
    ],
    // 90
    [
        (2, 94, 0x02),
        (9, 94, 0x02),
        (23, 94, 0x02),
        (40, 94, 0x03),
        (2, 125, 0x02),
        (9, 125, 0x02),
        (23, 125, 0x02),
        (40, 125, 0x03),
        (1, 60, 0x02),
        (22, 60, 0x03),
        (1, 96, 0x02),
        (22, 96, 0x03),
        (1, 123, 0x02),
        (22, 123, 0x03),
        (96, 0, 0x00),
        (110, 0, 0x00),
    ],
    // 91
    [
        (3, 94, 0x02),
        (6, 94, 0x02),
        (10, 94, 0x02),
        (15, 94, 0x02),
        (24, 94, 0x02),
        (31, 94, 0x02),
        (41, 94, 0x02),
        (56, 94, 0x03),
        (3, 125, 0x02),
        (6, 125, 0x02),
        (10, 125, 0x02),
        (15, 125, 0x02),
        (24, 125, 0x02),
        (31, 125, 0x02),
        (41, 125, 0x02),
        (56, 125, 0x03),
    ],
    // 92
    [
        (2, 60, 0x02),
        (9, 60, 0x02),
        (23, 60, 0x02),
        (40, 60, 0x03),
        (2, 96, 0x02),
        (9, 96, 0x02),
        (23, 96, 0x02),
        (40, 96, 0x03),
        (2, 123, 0x02),
        (9, 123, 0x02),
        (23, 123, 0x02),
        (40, 123, 0x03),
        (97, 0, 0x00),
        (101, 0, 0x00),
        (111, 0, 0x00),
        (133, 0, 0x00),
    ],
    // 93
    [
        (3, 60, 0x02),
        (6, 60, 0x02),
        (10, 60, 0x02),
        (15, 60, 0x02),
        (24, 60, 0x02),
        (31, 60, 0x02),
        (41, 60, 0x02),
        (56, 60, 0x03),
        (3, 96, 0x02),
        (6, 96, 0x02),
        (10, 96, 0x02),
        (15, 96, 0x02),
        (24, 96, 0x02),
        (31, 96, 0x02),
        (41, 96, 0x02),
        (56, 96, 0x03),
    ],
    // 94
    [
        (3, 123, 0x02),
        (6, 123, 0x02),
        (10, 123, 0x02),
        (15, 123, 0x02),
        (24, 123, 0x02),
        (31, 123, 0x02),
        (41, 123, 0x02),
        (56, 123, 0x03),
        (98, 0, 0x00),
        (99, 0, 0x00),
        (102, 0, 0x00),
        (105, 0, 0x00),
        (112, 0, 0x00),
        (119, 0, 0x00),
        (134, 0, 0x00),
        (153, 0, 0x00),
    ],
    // 95
    [
        (0, 92, 0x02),
        (0, 195, 0x02),
        (0, 208, 0x02),
        (100, 0, 0x00),
        (103, 0, 0x00),
        (104, 0, 0x00),
        (106, 0, 0x00),
        (107, 0, 0x00),
        (113, 0, 0x00),
        (116, 0, 0x00),
        (120, 0, 0x00),
        (126, 0, 0x00),
        (135, 0, 0x00),
        (142, 0, 0x00),
        (154, 0, 0x00),
        (169, 0, 0x00),
    ],
    // 96
    [
        (1, 92, 0x02),
        (22, 92, 0x03),
        (1, 195, 0x02),
        (22, 195, 0x03),
        (1, 208, 0x02),
        (22, 208, 0x03),
        (0, 128, 0x02),
        (0, 130, 0x02),
        (0, 131, 0x02),
        (0, 162, 0x02),
        (0, 184, 0x02),
        (0, 194, 0x02),
        (0, 224, 0x02),
        (0, 226, 0x02),
        (108, 0, 0x00),
        (109, 0, 0x00),
    ],
    // 97
    [
        (2, 92, 0x02),
        (9, 92, 0x02),
        (23, 92, 0x02),
        (40, 92, 0x03),
        (2, 195, 0x02),
        (9, 195, 0x02),
        (23, 195, 0x02),
        (40, 195, 0x03),
        (2, 208, 0x02),
        (9, 208, 0x02),
        (23, 208, 0x02),
        (40, 208, 0x03),
        (1, 128, 0x02),
        (22, 128, 0x03),
        (1, 130, 0x02),
        (22, 130, 0x03),
    ],
    // 98
    [
        (3, 92, 0x02),
        (6, 92, 0x02),
        (10, 92, 0x02),
        (15, 92, 0x02),
        (24, 92, 0x02),
        (31, 92, 0x02),
        (41, 92, 0x02),
        (56, 92, 0x03),
        (3, 195, 0x02),
        (6, 195, 0x02),
        (10, 195, 0x02),
        (15, 195, 0x02),
        (24, 195, 0x02),
        (31, 195, 0x02),
        (41, 195, 0x02),
        (56, 195, 0x03),
    ],
    // 99
    [
        (3, 208, 0x02),
        (6, 208, 0x02),
        (10, 208, 0x02),
        (15, 208, 0x02),
        (24, 208, 0x02),
        (31, 208, 0x02),
        (41, 208, 0x02),
        (56, 208, 0x03),
        (2, 128, 0x02),
        (9, 128, 0x02),
        (23, 128, 0x02),
        (40, 128, 0x03),
        (2, 130, 0x02),
        (9, 130, 0x02),
        (23, 130, 0x02),
        (40, 130, 0x03),
    ],
    // 100
    [
        (3, 128, 0x02),
        (6, 128, 0x02),
        (10, 128, 0x02),
        (15, 128, 0x02),
        (24, 128, 0x02),
        (31, 128, 0x02),
        (41, 128, 0x02),
        (56, 128, 0x03),
        (3, 130, 0x02),
        (6, 130, 0x02),
        (10, 130, 0x02),
        (15, 130, 0x02),
        (24, 130, 0x02),
        (31, 130, 0x02),
        (41, 130, 0x02),
        (56, 130, 0x03),
    ],
    // 101
    [
        (1, 131, 0x02),
        (22, 131, 0x03),
        (1, 162, 0x02),
        (22, 162, 0x03),
        (1, 184, 0x02),
        (22, 184, 0x03),
        (1, 194, 0x02),
        (22, 194, 0x03),
        (1, 224, 0x02),
        (22, 224, 0x03),
        (1, 226, 0x02),
        (22, 226, 0x03),
        (0, 153, 0x02),
        (0, 161, 0x02),
        (0, 167, 0x02),
        (0, 172, 0x02),
    ],
    // 102
    [
        (2, 131, 0x02),
        (9, 131, 0x02),
        (23, 131, 0x02),
        (40, 131, 0x03),
        (2, 162, 0x02),
        (9, 162, 0x02),
        (23, 162, 0x02),
        (40, 162, 0x03),
        (2, 184, 0x02),
        (9, 184, 0x02),
        (23, 184, 0x02),
        (40, 184, 0x03),
        (2, 194, 0x02),
        (9, 194, 0x02),
        (23, 194, 0x02),
        (40, 194, 0x03),
    ],
    // 103
    [
        (3, 131, 0x02),
        (6, 131, 0x02),
        (10, 131, 0x02),
        (15, 131, 0x02),
        (24, 131, 0x02),
        (31, 131, 0x02),
        (41, 131, 0x02),
        (56, 131, 0x03),
        (3, 162, 0x02),
        (6, 162, 0x02),
        (10, 162, 0x02),
        (15, 162, 0x02),
        (24, 162, 0x02),
        (31, 162, 0x02),
        (41, 162, 0x02),
        (56, 162, 0x03),
    ],
    // 104
    [
        (3, 184, 0x02),
        (6, 184, 0x02),
        (10, 184, 0x02),
        (15, 184, 0x02),
        (24, 184, 0x02),
        (31, 184, 0x02),
        (41, 184, 0x02),
        (56, 184, 0x03),
        (3, 194, 0x02),
        (6, 194, 0x02),
        (10, 194, 0x02),
        (15, 194, 0x02),
        (24, 194, 0x02),
        (31, 194, 0x02),
        (41, 194, 0x02),
        (56, 194, 0x03),
    ],
    // 105
    [
        (2, 224, 0x02),
        (9, 224, 0x02),
        (23, 224, 0x02),
        (40, 224, 0x03),
        (2, 226, 0x02),
        (9, 226, 0x02),
        (23, 226, 0x02),
        (40, 226, 0x03),
        (1, 153, 0x02),
        (22, 153, 0x03),
        (1, 161, 0x02),
        (22, 161, 0x03),
        (1, 167, 0x02),
        (22, 167, 0x03),
        (1, 172, 0x02),
        (22, 172, 0x03),
    ],
    // 106
    [
        (3, 224, 0x02),
        (6, 224, 0x02),
        (10, 224, 0x02),
        (15, 224, 0x02),
        (24, 224, 0x02),
        (31, 224, 0x02),
        (41, 224, 0x02),
        (56, 224, 0x03),
        (3, 226, 0x02),
        (6, 226, 0x02),
        (10, 226, 0x02),
        (15, 226, 0x02),
        (24, 226, 0x02),
        (31, 226, 0x02),
        (41, 226, 0x02),
        (56, 226, 0x03),
    ],
    // 107
    [
        (2, 153, 0x02),
        (9, 153, 0x02),
        (23, 153, 0x02),
        (40, 153, 0x03),
        (2, 161, 0x02),
        (9, 161, 0x02),
        (23, 161, 0x02),
        (40, 161, 0x03),
        (2, 167, 0x02),
        (9, 167, 0x02),
        (23, 167, 0x02),
        (40, 167, 0x03),
        (2, 172, 0x02),
        (9, 172, 0x02),
        (23, 172, 0x02),
        (40, 172, 0x03),
    ],
    // 108
    [
        (3, 153, 0x02),
        (6, 153, 0x02),
        (10, 153, 0x02),
        (15, 153, 0x02),
        (24, 153, 0x02),
        (31, 153, 0x02),
        (41, 153, 0x02),
        (56, 153, 0x03),
        (3, 161, 0x02),
        (6, 161, 0x02),
        (10, 161, 0x02),
        (15, 161, 0x02),
        (24, 161, 0x02),
        (31, 161, 0x02),
        (41, 161, 0x02),
        (56, 161, 0x03),
    ],
    // 109
    [
        (3, 167, 0x02),
        (6, 167, 0x02),
        (10, 167, 0x02),
        (15, 167, 0x02),
        (24, 167, 0x02),
        (31, 167, 0x02),
        (41, 167, 0x02),
        (56, 167, 0x03),
        (3, 172, 0x02),
        (6, 172, 0x02),
        (10, 172, 0x02),
        (15, 172, 0x02),
        (24, 172, 0x02),
        (31, 172, 0x02),
        (41, 172, 0x02),
        (56, 172, 0x03),
    ],
    // 110
    [
        (114, 0, 0x00),
        (115, 0, 0x00),
        (117, 0, 0x00),
        (118, 0, 0x00),
        (121, 0, 0x00),
        (123, 0, 0x00),
        (127, 0, 0x00),
        (130, 0, 0x00),
        (136, 0, 0x00),
        (139, 0, 0x00),
        (143, 0, 0x00),
        (146, 0, 0x00),
        (155, 0, 0x00),
        (162, 0, 0x00),
        (170, 0, 0x00),
        (180, 0, 0x00),
    ],
    // 111
    [
        (0, 176, 0x02),
        (0, 177, 0x02),
        (0, 179, 0x02),
        (0, 209, 0x02),
        (0, 216, 0x02),
        (0, 217, 0x02),
        (0, 227, 0x02),
        (0, 229, 0x02),
        (0, 230, 0x02),
        (122, 0, 0x00),
        (124, 0, 0x00),
        (125, 0, 0x00),
        (128, 0, 0x00),
        (129, 0, 0x00),
        (131, 0, 0x00),
        (132, 0, 0x00),
    ],
    // 112
    [
        (1, 176, 0x02),
        (22, 176, 0x03),
        (1, 177, 0x02),
        (22, 177, 0x03),
        (1, 179, 0x02),
        (22, 179, 0x03),
        (1, 209, 0x02),
        (22, 209, 0x03),
        (1, 216, 0x02),
        (22, 216, 0x03),
        (1, 217, 0x02),
        (22, 217, 0x03),
        (1, 227, 0x02),
        (22, 227, 0x03),
        (1, 229, 0x02),
        (22, 229, 0x03),
    ],
    // 113
    [
        (2, 176, 0x02),
        (9, 176, 0x02),
        (23, 176, 0x02),
        (40, 176, 0x03),
        (2, 177, 0x02),
        (9, 177, 0x02),
        (23, 177, 0x02),
        (40, 177, 0x03),
        (2, 179, 0x02),
        (9, 179, 0x02),
        (23, 179, 0x02),
        (40, 179, 0x03),
        (2, 209, 0x02),
        (9, 209, 0x02),
        (23, 209, 0x02),
        (40, 209, 0x03),
    ],
    // 114
    [
        (3, 176, 0x02),
        (6, 176, 0x02),
        (10, 176, 0x02),
        (15, 176, 0x02),
        (24, 176, 0x02),
        (31, 176, 0x02),
        (41, 176, 0x02),
        (56, 176, 0x03),
        (3, 177, 0x02),
        (6, 177, 0x02),
        (10, 177, 0x02),
        (15, 177, 0x02),
        (24, 177, 0x02),
        (31, 177, 0x02),
        (41, 177, 0x02),
        (56, 177, 0x03),
    ],
    // 115
    [
        (3, 179, 0x02),
        (6, 179, 0x02),
        (10, 179, 0x02),
        (15, 179, 0x02),
        (24, 179, 0x02),
        (31, 179, 0x02),
        (41, 179, 0x02),
        (56, 179, 0x03),
        (3, 209, 0x02),
        (6, 209, 0x02),
        (10, 209, 0x02),
        (15, 209, 0x02),
        (24, 209, 0x02),
        (31, 209, 0x02),
        (41, 209, 0x02),
        (56, 209, 0x03),
    ],
    // 116
    [
        (2, 216, 0x02),
        (9, 216, 0x02),
        (23, 216, 0x02),
        (40, 216, 0x03),
        (2, 217, 0x02),
        (9, 217, 0x02),
        (23, 217, 0x02),
        (40, 217, 0x03),
        (2, 227, 0x02),
        (9, 227, 0x02),
        (23, 227, 0x02),
        (40, 227, 0x03),
        (2, 229, 0x02),
        (9, 229, 0x02),
        (23, 229, 0x02),
        (40, 229, 0x03),
    ],
    // 117
    [
        (3, 216, 0x02),
        (6, 216, 0x02),
        (10, 216, 0x02),
        (15, 216, 0x02),
        (24, 216, 0x02),
        (31, 216, 0x02),
        (41, 216, 0x02),
        (56, 216, 0x03),
        (3, 217, 0x02),
        (6, 217, 0x02),
        (10, 217, 0x02),
        (15, 217, 0x02),
        (24, 217, 0x02),
        (31, 217, 0x02),
        (41, 217, 0x02),
        (56, 217, 0x03),
    ],
    // 118
    [
        (3, 227, 0x02),
        (6, 227, 0x02),
        (10, 227, 0x02),
        (15, 227, 0x02),
        (24, 227, 0x02),
        (31, 227, 0x02),
        (41, 227, 0x02),
        (56, 227, 0x03),
        (3, 229, 0x02),
        (6, 229, 0x02),
        (10, 229, 0x02),
        (15, 229, 0x02),
        (24, 229, 0x02),
        (31, 229, 0x02),
        (41, 229, 0x02),
        (56, 229, 0x03),
    ],
    // 119
    [
        (1, 230, 0x02),
        (22, 230, 0x03),
        (0, 129, 0x02),
        (0, 132, 0x02),
        (0, 133, 0x02),
        (0, 134, 0x02),
        (0, 136, 0x02),
        (0, 146, 0x02),
        (0, 154, 0x02),
        (0, 156, 0x02),
        (0, 160, 0x02),
        (0, 163, 0x02),
        (0, 164, 0x02),
        (0, 169, 0x02),
        (0, 170, 0x02),
        (0, 173, 0x02),
    ],
    // 120
    [
        (2, 230, 0x02),
        (9, 230, 0x02),
        (23, 230, 0x02),
        (40, 230, 0x03),
        (1, 129, 0x02),
        (22, 129, 0x03),
        (1, 132, 0x02),
        (22, 132, 0x03),
        (1, 133, 0x02),
        (22, 133, 0x03),
        (1, 134, 0x02),
        (22, 134, 0x03),
        (1, 136, 0x02),
        (22, 136, 0x03),
        (1, 146, 0x02),
        (22, 146, 0x03),
    ],
    // 121
    [
        (3, 230, 0x02),
        (6, 230, 0x02),
        (10, 230, 0x02),
        (15, 230, 0x02),
        (24, 230, 0x02),
        (31, 230, 0x02),
        (41, 230, 0x02),
        (56, 230, 0x03),
        (2, 129, 0x02),
        (9, 129, 0x02),
        (23, 129, 0x02),
        (40, 129, 0x03),
        (2, 132, 0x02),
        (9, 132, 0x02),
        (23, 132, 0x02),
        (40, 132, 0x03),
    ],
    // 122
    [
        (3, 129, 0x02),
        (6, 129, 0x02),
        (10, 129, 0x02),
        (15, 129, 0x02),
        (24, 129, 0x02),
        (31, 129, 0x02),
        (41, 129, 0x02),
        (56, 129, 0x03),
        (3, 132, 0x02),
        (6, 132, 0x02),
        (10, 132, 0x02),
        (15, 132, 0x02),
        (24, 132, 0x02),
        (31, 132, 0x02),
        (41, 132, 0x02),
        (56, 132, 0x03),
    ],
    // 123
    [
        (2, 133, 0x02),
        (9, 133, 0x02),
        (23, 133, 0x02),
        (40, 133, 0x03),
        (2, 134, 0x02),
        (9, 134, 0x02),
        (23, 134, 0x02),
        (40, 134, 0x03),
        (2, 136, 0x02),
        (9, 136, 0x02),
        (23, 136, 0x02),
        (40, 136, 0x03),
        (2, 146, 0x02),
        (9, 146, 0x02),
        (23, 146, 0x02),
        (40, 146, 0x03),
    ],
    // 124
    [
        (3, 133, 0x02),
        (6, 133, 0x02),
        (10, 133, 0x02),
        (15, 133, 0x02),
        (24, 133, 0x02),
        (31, 133, 0x02),
        (41, 133, 0x02),
        (56, 133, 0x03),
        (3, 134, 0x02),
        (6, 134, 0x02),
        (10, 134, 0x02),
        (15, 134, 0x02),
        (24, 134, 0x02),
        (31, 134, 0x02),
        (41, 134, 0x02),
        (56, 134, 0x03),
    ],
    // 125
    [
        (3, 136, 0x02),
        (6, 136, 0x02),
        (10, 136, 0x02),
        (15, 136, 0x02),
        (24, 136, 0x02),
        (31, 136, 0x02),
        (41, 136, 0x02),
        (56, 136, 0x03),
        (3, 146, 0x02),
        (6, 146, 0x02),
        (10, 146, 0x02),
        (15, 146, 0x02),
        (24, 146, 0x02),
        (31, 146, 0x02),
        (41, 146, 0x02),
        (56, 146, 0x03),
    ],
    // 126
    [
        (1, 154, 0x02),
        (22, 154, 0x03),
        (1, 156, 0x02),
        (22, 156, 0x03),
        (1, 160, 0x02),
        (22, 160, 0x03),
        (1, 163, 0x02),
        (22, 163, 0x03),
        (1, 164, 0x02),
        (22, 164, 0x03),
        (1, 169, 0x02),
        (22, 169, 0x03),
        (1, 170, 0x02),
        (22, 170, 0x03),
        (1, 173, 0x02),
        (22, 173, 0x03),
    ],
    // 127
    [
        (2, 154, 0x02),
        (9, 154, 0x02),
        (23, 154, 0x02),
        (40, 154, 0x03),
        (2, 156, 0x02),
        (9, 156, 0x02),
        (23, 156, 0x02),
        (40, 156, 0x03),
        (2, 160, 0x02),
        (9, 160, 0x02),
        (23, 160, 0x02),
        (40, 160, 0x03),
        (2, 163, 0x02),
        (9, 163, 0x02),
        (23, 163, 0x02),
        (40, 163, 0x03),
    ],
    // 128
    [
        (3, 154, 0x02),
        (6, 154, 0x02),
        (10, 154, 0x02),
        (15, 154, 0x02),
        (24, 154, 0x02),
        (31, 154, 0x02),
        (41, 154, 0x02),
        (56, 154, 0x03),
        (3, 156, 0x02),
        (6, 156, 0x02),
        (10, 156, 0x02),
        (15, 156, 0x02),
        (24, 156, 0x02),
        (31, 156, 0x02),
        (41, 156, 0x02),
        (56, 156, 0x03),
    ],
    // 129
    [
        (3, 160, 0x02),
        (6, 160, 0x02),
        (10, 160, 0x02),
        (15, 160, 0x02),
        (24, 160, 0x02),
        (31, 160, 0x02),
        (41, 160, 0x02),
        (56, 160, 0x03),
        (3, 163, 0x02),
        (6, 163, 0x02),
        (10, 163, 0x02),
        (15, 163, 0x02),
        (24, 163, 0x02),
        (31, 163, 0x02),
        (41, 163, 0x02),
        (56, 163, 0x03),
    ],
    // 130
    [
        (2, 164, 0x02),
        (9, 164, 0x02),
        (23, 164, 0x02),
        (40, 164, 0x03),
        (2, 169, 0x02),
        (9, 169, 0x02),
        (23, 169, 0x02),
        (40, 169, 0x03),
        (2, 170, 0x02),
        (9, 170, 0x02),
        (23, 170, 0x02),
        (40, 170, 0x03),
        (2, 173, 0x02),
        (9, 173, 0x02),
        (23, 173, 0x02),
        (40, 173, 0x03),
    ],
    // 131
    [
        (3, 164, 0x02),
        (6, 164, 0x02),
        (10, 164, 0x02),
        (15, 164, 0x02),
        (24, 164, 0x02),
        (31, 164, 0x02),
        (41, 164, 0x02),
        (56, 164, 0x03),
        (3, 169, 0x02),
        (6, 169, 0x02),
        (10, 169, 0x02),
        (15, 169, 0x02),
        (24, 169, 0x02),
        (31, 169, 0x02),
        (41, 169, 0x02),
        (56, 169, 0x03),
    ],
    // 132
    [
        (3, 170, 0x02),
        (6, 170, 0x02),
        (10, 170, 0x02),
        (15, 170, 0x02),
        (24, 170, 0x02),
        (31, 170, 0x02),
        (41, 170, 0x02),
        (56, 170, 0x03),
        (3, 173, 0x02),
        (6, 173, 0x02),
        (10, 173, 0x02),
        (15, 173, 0x02),
        (24, 173, 0x02),
        (31, 173, 0x02),
        (41, 173, 0x02),
        (56, 173, 0x03),
    ],
    // 133
    [
        (137, 0, 0x00),
        (138, 0, 0x00),
        (140, 0, 0x00),
        (141, 0, 0x00),
        (144, 0, 0x00),
        (145, 0, 0x00),
        (147, 0, 0x00),
        (150, 0, 0x00),
        (156, 0, 0x00),
        (159, 0, 0x00),
        (163, 0, 0x00),
        (166, 0, 0x00),
        (171, 0, 0x00),
        (174, 0, 0x00),
        (181, 0, 0x00),
        (190, 0, 0x00),
    ],
    // 134
    [
        (0, 178, 0x02),
        (0, 181, 0x02),
        (0, 185, 0x02),
        (0, 186, 0x02),
        (0, 187, 0x02),
        (0, 189, 0x02),
        (0, 190, 0x02),
        (0, 196, 0x02),
        (0, 198, 0x02),
        (0, 228, 0x02),
        (0, 232, 0x02),
        (0, 233, 0x02),
        (148, 0, 0x00),
        (149, 0, 0x00),
        (151, 0, 0x00),
        (152, 0, 0x00),
    ],
    // 135
    [
        (1, 178, 0x02),
        (22, 178, 0x03),
        (1, 181, 0x02),
        (22, 181, 0x03),
        (1, 185, 0x02),
        (22, 185, 0x03),
        (1, 186, 0x02),
        (22, 186, 0x03),
        (1, 187, 0x02),
        (22, 187, 0x03),
        (1, 189, 0x02),
        (22, 189, 0x03),
        (1, 190, 0x02),
        (22, 190, 0x03),
        (1, 196, 0x02),
        (22, 196, 0x03),
    ],
    // 136
    [
        (2, 178, 0x02),
        (9, 178, 0x02),
        (23, 178, 0x02),
        (40, 178, 0x03),
        (2, 181, 0x02),
        (9, 181, 0x02),
        (23, 181, 0x02),
        (40, 181, 0x03),
        (2, 185, 0x02),
        (9, 185, 0x02),
        (23, 185, 0x02),
        (40, 185, 0x03),
        (2, 186, 0x02),
        (9, 186, 0x02),
        (23, 186, 0x02),
        (40, 186, 0x03),
    ],
    // 137
    [
        (3, 178, 0x02),
        (6, 178, 0x02),
        (10, 178, 0x02),
        (15, 178, 0x02),
        (24, 178, 0x02),
        (31, 178, 0x02),
        (41, 178, 0x02),
        (56, 178, 0x03),
        (3, 181, 0x02),
        (6, 181, 0x02),
        (10, 181, 0x02),
        (15, 181, 0x02),
        (24, 181, 0x02),
        (31, 181, 0x02),
        (41, 181, 0x02),
        (56, 181, 0x03),
    ],
    // 138
    [
        (3, 185, 0x02),
        (6, 185, 0x02),
        (10, 185, 0x02),
        (15, 185, 0x02),
        (24, 185, 0x02),
        (31, 185, 0x02),
        (41, 185, 0x02),
        (56, 185, 0x03),
        (3, 186, 0x02),
        (6, 186, 0x02),
        (10, 186, 0x02),
        (15, 186, 0x02),
        (24, 186, 0x02),
        (31, 186, 0x02),
        (41, 186, 0x02),
        (56, 186, 0x03),
    ],
    // 139
    [
        (2, 187, 0x02),
        (9, 187, 0x02),
        (23, 187, 0x02),
        (40, 187, 0x03),
        (2, 189, 0x02),
        (9, 189, 0x02),
        (23, 189, 0x02),
        (40, 189, 0x03),
        (2, 190, 0x02),
        (9, 190, 0x02),
        (23, 190, 0x02),
        (40, 190, 0x03),
        (2, 196, 0x02),
        (9, 196, 0x02),
        (23, 196, 0x02),
        (40, 196, 0x03),
    ],
    // 140
    [
        (3, 187, 0x02),
        (6, 187, 0x02),
        (10, 187, 0x02),
        (15, 187, 0x02),
        (24, 187, 0x02),
        (31, 187, 0x02),
        (41, 187, 0x02),
        (56, 187, 0x03),
        (3, 189, 0x02),
        (6, 189, 0x02),
        (10, 189, 0x02),
        (15, 189, 0x02),
        (24, 189, 0x02),
        (31, 189, 0x02),
        (41, 189, 0x02),
        (56, 189, 0x03),
    ],
    // 141
    [
        (3, 190, 0x02),
        (6, 190, 0x02),
        (10, 190, 0x02),
        (15, 190, 0x02),
        (24, 190, 0x02),
        (31, 190, 0x02),
        (41, 190, 0x02),
        (56, 190, 0x03),
        (3, 196, 0x02),
        (6, 196, 0x02),
        (10, 196, 0x02),
        (15, 196, 0x02),
        (24, 196, 0x02),
        (31, 196, 0x02),
        (41, 196, 0x02),
        (56, 196, 0x03),
    ],
    // 142
    [
        (1, 198, 0x02),
        (22, 198, 0x03),
        (1, 228, 0x02),
        (22, 228, 0x03),
        (1, 232, 0x02),
        (22, 232, 0x03),
        (1, 233, 0x02),
        (22, 233, 0x03),
        (0, 1, 0x02),
        (0, 135, 0x02),
        (0, 137, 0x02),
        (0, 138, 0x02),
        (0, 139, 0x02),
        (0, 140, 0x02),
        (0, 141, 0x02),
        (0, 143, 0x02),
    ],
    // 143
    [
        (2, 198, 0x02),
        (9, 198, 0x02),
        (23, 198, 0x02),
        (40, 198, 0x03),
        (2, 228, 0x02),
        (9, 228, 0x02),
        (23, 228, 0x02),
        (40, 228, 0x03),
        (2, 232, 0x02),
        (9, 232, 0x02),
        (23, 232, 0x02),
        (40, 232, 0x03),
        (2, 233, 0x02),
        (9, 233, 0x02),
        (23, 233, 0x02),
        (40, 233, 0x03),
    ],
    // 144
    [
        (3, 198, 0x02),
        (6, 198, 0x02),
        (10, 198, 0x02),
        (15, 198, 0x02),
        (24, 198, 0x02),
        (31, 198, 0x02),
        (41, 198, 0x02),
        (56, 198, 0x03),
        (3, 228, 0x02),
        (6, 228, 0x02),
        (10, 228, 0x02),
        (15, 228, 0x02),
        (24, 228, 0x02),
        (31, 228, 0x02),
        (41, 228, 0x02),
        (56, 228, 0x03),
    ],
    // 145
    [
        (3, 232, 0x02),
        (6, 232, 0x02),
        (10, 232, 0x02),
        (15, 232, 0x02),
        (24, 232, 0x02),
        (31, 232, 0x02),
        (41, 232, 0x02),
        (56, 232, 0x03),
        (3, 233, 0x02),
        (6, 233, 0x02),
        (10, 233, 0x02),
        (15, 233, 0x02),
        (24, 233, 0x02),
        (31, 233, 0x02),
        (41, 233, 0x02),
        (56, 233, 0x03),
    ],
    // 146
    [
        (1, 1, 0x02),
        (22, 1, 0x03),
        (1, 135, 0x02),
        (22, 135, 0x03),
        (1, 137, 0x02),
        (22, 137, 0x03),
        (1, 138, 0x02),
        (22, 138, 0x03),
        (1, 139, 0x02),
        (22, 139, 0x03),
        (1, 140, 0x02),
        (22, 140, 0x03),
        (1, 141, 0x02),
        (22, 141, 0x03),
        (1, 143, 0x02),
        (22, 143, 0x03),
    ],
    // 147
    [
        (2, 1, 0x02),
        (9, 1, 0x02),
        (23, 1, 0x02),
        (40, 1, 0x03),
        (2, 135, 0x02),
        (9, 135, 0x02),
        (23, 135, 0x02),
        (40, 135, 0x03),
        (2, 137, 0x02),
        (9, 137, 0x02),
        (23, 137, 0x02),
        (40, 137, 0x03),
        (2, 138, 0x02),
        (9, 138, 0x02),
        (23, 138, 0x02),
        (40, 138, 0x03),
    ],
    // 148
    [
        (3, 1, 0x02),
        (6, 1, 0x02),
        (10, 1, 0x02),
        (15, 1, 0x02),
        (24, 1, 0x02),
        (31, 1, 0x02),
        (41, 1, 0x02),
        (56, 1, 0x03),
        (3, 135, 0x02),
        (6, 135, 0x02),
        (10, 135, 0x02),
        (15, 135, 0x02),
        (24, 135, 0x02),
        (31, 135, 0x02),
        (41, 135, 0x02),
        (56, 135, 0x03),
    ],
    // 149
    [
        (3, 137, 0x02),
        (6, 137, 0x02),
        (10, 137, 0x02),
        (15, 137, 0x02),
        (24, 137, 0x02),
        (31, 137, 0x02),
        (41, 137, 0x02),
        (56, 137, 0x03),
        (3, 138, 0x02),
        (6, 138, 0x02),
        (10, 138, 0x02),
        (15, 138, 0x02),
        (24, 138, 0x02),
        (31, 138, 0x02),
        (41, 138, 0x02),
        (56, 138, 0x03),
    ],
    // 150
    [
        (2, 139, 0x02),
        (9, 139, 0x02),
        (23, 139, 0x02),
        (40, 139, 0x03),
        (2, 140, 0x02),
        (9, 140, 0x02),
        (23, 140, 0x02),
        (40, 140, 0x03),
        (2, 141, 0x02),
        (9, 141, 0x02),
        (23, 141, 0x02),
        (40, 141, 0x03),
        (2, 143, 0x02),
        (9, 143, 0x02),
        (23, 143, 0x02),
        (40, 143, 0x03),
    ],
    // 151
    [
        (3, 139, 0x02),
        (6, 139, 0x02),
        (10, 139, 0x02),
        (15, 139, 0x02),
        (24, 139, 0x02),
        (31, 139, 0x02),
        (41, 139, 0x02),
        (56, 139, 0x03),
        (3, 140, 0x02),
        (6, 140, 0x02),
        (10, 140, 0x02),
        (15, 140, 0x02),
        (24, 140, 0x02),
        (31, 140, 0x02),
        (41, 140, 0x02),
        (56, 140, 0x03),
    ],
    // 152
    [
        (3, 141, 0x02),
        (6, 141, 0x02),
        (10, 141, 0x02),
        (15, 141, 0x02),
        (24, 141, 0x02),
        (31, 141, 0x02),
        (41, 141, 0x02),
        (56, 141, 0x03),
        (3, 143, 0x02),
        (6, 143, 0x02),
        (10, 143, 0x02),
        (15, 143, 0x02),
        (24, 143, 0x02),
        (31, 143, 0x02),
        (41, 143, 0x02),
        (56, 143, 0x03),
    ],
    // 153
    [
        (157, 0, 0x00),
        (158, 0, 0x00),
        (160, 0, 0x00),
        (161, 0, 0x00),
        (164, 0, 0x00),
        (165, 0, 0x00),
        (167, 0, 0x00),
        (168, 0, 0x00),
        (172, 0, 0x00),
        (173, 0, 0x00),
        (175, 0, 0x00),
        (177, 0, 0x00),
        (182, 0, 0x00),
        (185, 0, 0x00),
        (191, 0, 0x00),
        (207, 0, 0x00),
    ],
    // 154
    [
        (0, 147, 0x02),
        (0, 149, 0x02),
        (0, 150, 0x02),
        (0, 151, 0x02),
        (0, 152, 0x02),
        (0, 155, 0x02),
        (0, 157, 0x02),
        (0, 158, 0x02),
        (0, 165, 0x02),
        (0, 166, 0x02),
        (0, 168, 0x02),
        (0, 174, 0x02),
        (0, 175, 0x02),
        (0, 180, 0x02),
        (0, 182, 0x02),
        (0, 183, 0x02),
    ],
    // 155
    [
        (1, 147, 0x02),
        (22, 147, 0x03),
        (1, 149, 0x02),
        (22, 149, 0x03),
        (1, 150, 0x02),
        (22, 150, 0x03),
        (1, 151, 0x02),
        (22, 151, 0x03),
        (1, 152, 0x02),
        (22, 152, 0x03),
        (1, 155, 0x02),
        (22, 155, 0x03),
        (1, 157, 0x02),
        (22, 157, 0x03),
        (1, 158, 0x02),
        (22, 158, 0x03),
    ],
    // 156
    [
        (2, 147, 0x02),
        (9, 147, 0x02),
        (23, 147, 0x02),
        (40, 147, 0x03),
        (2, 149, 0x02),
        (9, 149, 0x02),
        (23, 149, 0x02),
        (40, 149, 0x03),
        (2, 150, 0x02),
        (9, 150, 0x02),
        (23, 150, 0x02),
        (40, 150, 0x03),
        (2, 151, 0x02),
        (9, 151, 0x02),
        (23, 151, 0x02),
        (40, 151, 0x03),
    ],
    // 157
    [
        (3, 147, 0x02),
        (6, 147, 0x02),
        (10, 147, 0x02),
        (15, 147, 0x02),
        (24, 147, 0x02),
        (31, 147, 0x02),
        (41, 147, 0x02),
        (56, 147, 0x03),
        (3, 149, 0x02),
        (6, 149, 0x02),
        (10, 149, 0x02),
        (15, 149, 0x02),
        (24, 149, 0x02),
        (31, 149, 0x02),
        (41, 149, 0x02),
        (56, 149, 0x03),
    ],
    // 158
    [
        (3, 150, 0x02),
        (6, 150, 0x02),
        (10, 150, 0x02),
        (15, 150, 0x02),
        (24, 150, 0x02),
        (31, 150, 0x02),
        (41, 150, 0x02),
        (56, 150, 0x03),
        (3, 151, 0x02),
        (6, 151, 0x02),
        (10, 151, 0x02),
        (15, 151, 0x02),
        (24, 151, 0x02),
        (31, 151, 0x02),
        (41, 151, 0x02),
        (56, 151, 0x03),
    ],
    // 159
    [
        (2, 152, 0x02),
        (9, 152, 0x02),
        (23, 152, 0x02),
        (40, 152, 0x03),
        (2, 155, 0x02),
        (9, 155, 0x02),
        (23, 155, 0x02),
        (40, 155, 0x03),
        (2, 157, 0x02),
        (9, 157, 0x02),
        (23, 157, 0x02),
        (40, 157, 0x03),
        (2, 158, 0x02),
        (9, 158, 0x02),
        (23, 158, 0x02),
        (40, 158, 0x03),
    ],
    // 160
    [
        (3, 152, 0x02),
        (6, 152, 0x02),
        (10, 152, 0x02),
        (15, 152, 0x02),
        (24, 152, 0x02),
        (31, 152, 0x02),
        (41, 152, 0x02),
        (56, 152, 0x03),
        (3, 155, 0x02),
        (6, 155, 0x02),
        (10, 155, 0x02),
        (15, 155, 0x02),
        (24, 155, 0x02),
        (31, 155, 0x02),
        (41, 155, 0x02),
        (56, 155, 0x03),
    ],
    // 161
    [
        (3, 157, 0x02),
        (6, 157, 0x02),
        (10, 157, 0x02),
        (15, 157, 0x02),
        (24, 157, 0x02),
        (31, 157, 0x02),
        (41, 157, 0x02),
        (56, 157, 0x03),
        (3, 158, 0x02),
        (6, 158, 0x02),
        (10, 158, 0x02),
        (15, 158, 0x02),
        (24, 158, 0x02),
        (31, 158, 0x02),
        (41, 158, 0x02),
        (56, 158, 0x03),
    ],
    // 162
    [
        (1, 165, 0x02),
        (22, 165, 0x03),
        (1, 166, 0x02),
        (22, 166, 0x03),
        (1, 168, 0x02),
        (22, 168, 0x03),
        (1, 174, 0x02),
        (22, 174, 0x03),
        (1, 175, 0x02),
        (22, 175, 0x03),
        (1, 180, 0x02),
        (22, 180, 0x03),
        (1, 182, 0x02),
        (22, 182, 0x03),
        (1, 183, 0x02),
        (22, 183, 0x03),
    ],
    // 163
    [
        (2, 165, 0x02),
        (9, 165, 0x02),
        (23, 165, 0x02),
        (40, 165, 0x03),
        (2, 166, 0x02),
        (9, 166, 0x02),
        (23, 166, 0x02),
        (40, 166, 0x03),
        (2, 168, 0x02),
        (9, 168, 0x02),
        (23, 168, 0x02),
        (40, 168, 0x03),
        (2, 174, 0x02),
        (9, 174, 0x02),
        (23, 174, 0x02),
        (40, 174, 0x03),
    ],
    // 164
    [
        (3, 165, 0x02),
        (6, 165, 0x02),
        (10, 165, 0x02),
        (15, 165, 0x02),
        (24, 165, 0x02),
        (31, 165, 0x02),
        (41, 165, 0x02),
        (56, 165, 0x03),
        (3, 166, 0x02),
        (6, 166, 0x02),
        (10, 166, 0x02),
        (15, 166, 0x02),
        (24, 166, 0x02),
        (31, 166, 0x02),
        (41, 166, 0x02),
        (56, 166, 0x03),
    ],
    // 165
    [
        (3, 168, 0x02),
        (6, 168, 0x02),
        (10, 168, 0x02),
        (15, 168, 0x02),
        (24, 168, 0x02),
        (31, 168, 0x02),
        (41, 168, 0x02),
        (56, 168, 0x03),
        (3, 174, 0x02),
        (6, 174, 0x02),
        (10, 174, 0x02),
        (15, 174, 0x02),
        (24, 174, 0x02),
        (31, 174, 0x02),
        (41, 174, 0x02),
        (56, 174, 0x03),
    ],
    // 166
    [
        (2, 175, 0x02),
        (9, 175, 0x02),
        (23, 175, 0x02),
        (40, 175, 0x03),
        (2, 180, 0x02),
        (9, 180, 0x02),
        (23, 180, 0x02),
        (40, 180, 0x03),
        (2, 182, 0x02),
        (9, 182, 0x02),
        (23, 182, 0x02),
        (40, 182, 0x03),
        (2, 183, 0x02),
        (9, 183, 0x02),
        (23, 183, 0x02),
        (40, 183, 0x03),
    ],
    // 167
    [
        (3, 175, 0x02),
        (6, 175, 0x02),
        (10, 175, 0x02),
        (15, 175, 0x02),
        (24, 175, 0x02),
        (31, 175, 0x02),
        (41, 175, 0x02),
        (56, 175, 0x03),
        (3, 180, 0x02),
        (6, 180, 0x02),
        (10, 180, 0x02),
        (15, 180, 0x02),
        (24, 180, 0x02),
        (31, 180, 0x02),
        (41, 180, 0x02),
        (56, 180, 0x03),
    ],
    // 168
    [
        (3, 182, 0x02),
        (6, 182, 0x02),
        (10, 182, 0x02),
        (15, 182, 0x02),
        (24, 182, 0x02),
        (31, 182, 0x02),
        (41, 182, 0x02),
        (56, 182, 0x03),
        (3, 183, 0x02),
        (6, 183, 0x02),
        (10, 183, 0x02),
        (15, 183, 0x02),
        (24, 183, 0x02),
        (31, 183, 0x02),
        (41, 183, 0x02),
        (56, 183, 0x03),
    ],
    // 169
    [
        (0, 188, 0x02),
        (0, 191, 0x02),
        (0, 197, 0x02),
        (0, 231, 0x02),
        (0, 239, 0x02),
        (176, 0, 0x00),
        (178, 0, 0x00),
        (179, 0, 0x00),
        (183, 0, 0x00),
        (184, 0, 0x00),
        (186, 0, 0x00),
        (187, 0, 0x00),
        (192, 0, 0x00),
        (199, 0, 0x00),
        (208, 0, 0x00),
        (223, 0, 0x00),
    ],
    // 170
    [
        (1, 188, 0x02),
        (22, 188, 0x03),
        (1, 191, 0x02),
        (22, 191, 0x03),
        (1, 197, 0x02),
        (22, 197, 0x03),
        (1, 231, 0x02),
        (22, 231, 0x03),
        (1, 239, 0x02),
        (22, 239, 0x03),
        (0, 9, 0x02),
        (0, 142, 0x02),
        (0, 144, 0x02),
        (0, 145, 0x02),
        (0, 148, 0x02),
        (0, 159, 0x02),
    ],
    // 171
    [
        (2, 188, 0x02),
        (9, 188, 0x02),
        (23, 188, 0x02),
        (40, 188, 0x03),
        (2, 191, 0x02),
        (9, 191, 0x02),
        (23, 191, 0x02),
        (40, 191, 0x03),
        (2, 197, 0x02),
        (9, 197, 0x02),
        (23, 197, 0x02),
        (40, 197, 0x03),
        (2, 231, 0x02),
        (9, 231, 0x02),
        (23, 231, 0x02),
        (40, 231, 0x03),
    ],
    // 172
    [
        (3, 188, 0x02),
        (6, 188, 0x02),
        (10, 188, 0x02),
        (15, 188, 0x02),
        (24, 188, 0x02),
        (31, 188, 0x02),
        (41, 188, 0x02),
        (56, 188, 0x03),
        (3, 191, 0x02),
        (6, 191, 0x02),
        (10, 191, 0x02),
        (15, 191, 0x02),
        (24, 191, 0x02),
        (31, 191, 0x02),
        (41, 191, 0x02),
        (56, 191, 0x03),
    ],
    // 173
    [
        (3, 197, 0x02),
        (6, 197, 0x02),
        (10, 197, 0x02),
        (15, 197, 0x02),
        (24, 197, 0x02),
        (31, 197, 0x02),
        (41, 197, 0x02),
        (56, 197, 0x03),
        (3, 231, 0x02),
        (6, 231, 0x02),
        (10, 231, 0x02),
        (15, 231, 0x02),
        (24, 231, 0x02),
        (31, 231, 0x02),
        (41, 231, 0x02),
        (56, 231, 0x03),
    ],
    // 174
    [
        (2, 239, 0x02),
        (9, 239, 0x02),
        (23, 239, 0x02),
        (40, 239, 0x03),
        (1, 9, 0x02),
        (22, 9, 0x03),
        (1, 142, 0x02),
        (22, 142, 0x03),
        (1, 144, 0x02),
        (22, 144, 0x03),
        (1, 145, 0x02),
        (22, 145, 0x03),
        (1, 148, 0x02),
        (22, 148, 0x03),
        (1, 159, 0x02),
        (22, 159, 0x03),
    ],
    // 175
    [
        (3, 239, 0x02),
        (6, 239, 0x02),
        (10, 239, 0x02),
        (15, 239, 0x02),
        (24, 239, 0x02),
        (31, 239, 0x02),
        (41, 239, 0x02),
        (56, 239, 0x03),
        (2, 9, 0x02),
        (9, 9, 0x02),
        (23, 9, 0x02),
        (40, 9, 0x03),
        (2, 142, 0x02),
        (9, 142, 0x02),
        (23, 142, 0x02),
        (40, 142, 0x03),
    ],
    // 176
    [
        (3, 9, 0x02),
        (6, 9, 0x02),
        (10, 9, 0x02),
        (15, 9, 0x02),
        (24, 9, 0x02),
        (31, 9, 0x02),
        (41, 9, 0x02),
        (56, 9, 0x03),
        (3, 142, 0x02),
        (6, 142, 0x02),
        (10, 142, 0x02),
        (15, 142, 0x02),
        (24, 142, 0x02),
        (31, 142, 0x02),
        (41, 142, 0x02),
        (56, 142, 0x03),
    ],
    // 177
    [
        (2, 144, 0x02),
        (9, 144, 0x02),
        (23, 144, 0x02),
        (40, 144, 0x03),
        (2, 145, 0x02),
        (9, 145, 0x02),
        (23, 145, 0x02),
        (40, 145, 0x03),
        (2, 148, 0x02),
        (9, 148, 0x02),
        (23, 148, 0x02),
        (40, 148, 0x03),
        (2, 159, 0x02),
        (9, 159, 0x02),
        (23, 159, 0x02),
        (40, 159, 0x03),
    ],
    // 178
    [
        (3, 144, 0x02),
        (6, 144, 0x02),
        (10, 144, 0x02),
        (15, 144, 0x02),
        (24, 144, 0x02),
        (31, 144, 0x02),
        (41, 144, 0x02),
        (56, 144, 0x03),
        (3, 145, 0x02),
        (6, 145, 0x02),
        (10, 145, 0x02),
        (15, 145, 0x02),
        (24, 145, 0x02),
        (31, 145, 0x02),
        (41, 145, 0x02),
        (56, 145, 0x03),
    ],
    // 179
    [
        (3, 148, 0x02),
        (6, 148, 0x02),
        (10, 148, 0x02),
        (15, 148, 0x02),
        (24, 148, 0x02),
        (31, 148, 0x02),
        (41, 148, 0x02),
        (56, 148, 0x03),
        (3, 159, 0x02),
        (6, 159, 0x02),
        (10, 159, 0x02),
        (15, 159, 0x02),
        (24, 159, 0x02),
        (31, 159, 0x02),
        (41, 159, 0x02),
        (56, 159, 0x03),
    ],
    // 180
    [
        (0, 171, 0x02),
        (0, 206, 0x02),
        (0, 215, 0x02),
        (0, 225, 0x02),
        (0, 236, 0x02),
        (0, 237, 0x02),
        (188, 0, 0x00),
        (189, 0, 0x00),
        (193, 0, 0x00),
        (196, 0, 0x00),
        (200, 0, 0x00),
        (203, 0, 0x00),
        (209, 0, 0x00),
        (216, 0, 0x00),
        (224, 0, 0x00),
        (238, 0, 0x00),
    ],
    // 181
    [
        (1, 171, 0x02),
        (22, 171, 0x03),
        (1, 206, 0x02),
        (22, 206, 0x03),
        (1, 215, 0x02),
        (22, 215, 0x03),
        (1, 225, 0x02),
        (22, 225, 0x03),
        (1, 236, 0x02),
        (22, 236, 0x03),
        (1, 237, 0x02),
        (22, 237, 0x03),
        (0, 199, 0x02),
        (0, 207, 0x02),
        (0, 234, 0x02),
        (0, 235, 0x02),
    ],
    // 182
    [
        (2, 171, 0x02),
        (9, 171, 0x02),
        (23, 171, 0x02),
        (40, 171, 0x03),
        (2, 206, 0x02),
        (9, 206, 0x02),
        (23, 206, 0x02),
        (40, 206, 0x03),
        (2, 215, 0x02),
        (9, 215, 0x02),
        (23, 215, 0x02),
        (40, 215, 0x03),
        (2, 225, 0x02),
        (9, 225, 0x02),
        (23, 225, 0x02),
        (40, 225, 0x03),
    ],
    // 183
    [
        (3, 171, 0x02),
        (6, 171, 0x02),
        (10, 171, 0x02),
        (15, 171, 0x02),
        (24, 171, 0x02),
        (31, 171, 0x02),
        (41, 171, 0x02),
        (56, 171, 0x03),
        (3, 206, 0x02),
        (6, 206, 0x02),
        (10, 206, 0x02),
        (15, 206, 0x02),
        (24, 206, 0x02),
        (31, 206, 0x02),
        (41, 206, 0x02),
        (56, 206, 0x03),
    ],
    // 184
    [
        (3, 215, 0x02),
        (6, 215, 0x02),
        (10, 215, 0x02),
        (15, 215, 0x02),
        (24, 215, 0x02),
        (31, 215, 0x02),
        (41, 215, 0x02),
        (56, 215, 0x03),
        (3, 225, 0x02),
        (6, 225, 0x02),
        (10, 225, 0x02),
        (15, 225, 0x02),
        (24, 225, 0x02),
        (31, 225, 0x02),
        (41, 225, 0x02),
        (56, 225, 0x03),
    ],
    // 185
    [
        (2, 236, 0x02),
        (9, 236, 0x02),
        (23, 236, 0x02),
        (40, 236, 0x03),
        (2, 237, 0x02),
        (9, 237, 0x02),
        (23, 237, 0x02),
        (40, 237, 0x03),
        (1, 199, 0x02),
        (22, 199, 0x03),
        (1, 207, 0x02),
        (22, 207, 0x03),
        (1, 234, 0x02),
        (22, 234, 0x03),
        (1, 235, 0x02),
        (22, 235, 0x03),
    ],
    // 186
    [
        (3, 236, 0x02),
        (6, 236, 0x02),
        (10, 236, 0x02),
        (15, 236, 0x02),
        (24, 236, 0x02),
        (31, 236, 0x02),
        (41, 236, 0x02),
        (56, 236, 0x03),
        (3, 237, 0x02),
        (6, 237, 0x02),
        (10, 237, 0x02),
        (15, 237, 0x02),
        (24, 237, 0x02),
        (31, 237, 0x02),
        (41, 237, 0x02),
        (56, 237, 0x03),
    ],
    // 187
    [
        (2, 199, 0x02),
        (9, 199, 0x02),
        (23, 199, 0x02),
        (40, 199, 0x03),
        (2, 207, 0x02),
        (9, 207, 0x02),
        (23, 207, 0x02),
        (40, 207, 0x03),
        (2, 234, 0x02),
        (9, 234, 0x02),
        (23, 234, 0x02),
        (40, 234, 0x03),
        (2, 235, 0x02),
        (9, 235, 0x02),
        (23, 235, 0x02),
        (40, 235, 0x03),
    ],
    // 188
    [
        (3, 199, 0x02),
        (6, 199, 0x02),
        (10, 199, 0x02),
        (15, 199, 0x02),
        (24, 199, 0x02),
        (31, 199, 0x02),
        (41, 199, 0x02),
        (56, 199, 0x03),
        (3, 207, 0x02),
        (6, 207, 0x02),
        (10, 207, 0x02),
        (15, 207, 0x02),
        (24, 207, 0x02),
        (31, 207, 0x02),
        (41, 207, 0x02),
        (56, 207, 0x03),
    ],
    // 189
    [
        (3, 234, 0x02),
        (6, 234, 0x02),
        (10, 234, 0x02),
        (15, 234, 0x02),
        (24, 234, 0x02),
        (31, 234, 0x02),
        (41, 234, 0x02),
        (56, 234, 0x03),
        (3, 235, 0x02),
        (6, 235, 0x02),
        (10, 235, 0x02),
        (15, 235, 0x02),
        (24, 235, 0x02),
        (31, 235, 0x02),
        (41, 235, 0x02),
        (56, 235, 0x03),
    ],
    // 190
    [
        (194, 0, 0x00),
        (195, 0, 0x00),
        (197, 0, 0x00),
        (198, 0, 0x00),
        (201, 0, 0x00),
        (202, 0, 0x00),
        (204, 0, 0x00),
        (205, 0, 0x00),
        (210, 0, 0x00),
        (213, 0, 0x00),
        (217, 0, 0x00),
        (220, 0, 0x00),
        (225, 0, 0x00),
        (231, 0, 0x00),
        (239, 0, 0x00),
        (246, 0, 0x00),
    ],
    // 191
    [
        (0, 192, 0x02),
        (0, 193, 0x02),
        (0, 200, 0x02),
        (0, 201, 0x02),
        (0, 202, 0x02),
        (0, 205, 0x02),
        (0, 210, 0x02),
        (0, 213, 0x02),
        (0, 218, 0x02),
        (0, 219, 0x02),
        (0, 238, 0x02),
        (0, 240, 0x02),
        (0, 242, 0x02),
        (0, 243, 0x02),
        (0, 255, 0x02),
        (206, 0, 0x00),
    ],
    // 192
    [
        (1, 192, 0x02),
        (22, 192, 0x03),
        (1, 193, 0x02),
        (22, 193, 0x03),
        (1, 200, 0x02),
        (22, 200, 0x03),
        (1, 201, 0x02),
        (22, 201, 0x03),
        (1, 202, 0x02),
        (22, 202, 0x03),
        (1, 205, 0x02),
        (22, 205, 0x03),
        (1, 210, 0x02),
        (22, 210, 0x03),
        (1, 213, 0x02),
        (22, 213, 0x03),
    ],
    // 193
    [
        (2, 192, 0x02),
        (9, 192, 0x02),
        (23, 192, 0x02),
        (40, 192, 0x03),
        (2, 193, 0x02),
        (9, 193, 0x02),
        (23, 193, 0x02),
        (40, 193, 0x03),
        (2, 200, 0x02),
        (9, 200, 0x02),
        (23, 200, 0x02),
        (40, 200, 0x03),
        (2, 201, 0x02),
        (9, 201, 0x02),
        (23, 201, 0x02),
        (40, 201, 0x03),
    ],
    // 194
    [
        (3, 192, 0x02),
        (6, 192, 0x02),
        (10, 192, 0x02),
        (15, 192, 0x02),
        (24, 192, 0x02),
        (31, 192, 0x02),
        (41, 192, 0x02),
        (56, 192, 0x03),
        (3, 193, 0x02),
        (6, 193, 0x02),
        (10, 193, 0x02),
        (15, 193, 0x02),
        (24, 193, 0x02),
        (31, 193, 0x02),
        (41, 193, 0x02),
        (56, 193, 0x03),
    ],
    // 195
    [
        (3, 200, 0x02),
        (6, 200, 0x02),
        (10, 200, 0x02),
        (15, 200, 0x02),
        (24, 200, 0x02),
        (31, 200, 0x02),
        (41, 200, 0x02),
        (56, 200, 0x03),
        (3, 201, 0x02),
        (6, 201, 0x02),
        (10, 201, 0x02),
        (15, 201, 0x02),
        (24, 201, 0x02),
        (31, 201, 0x02),
        (41, 201, 0x02),
        (56, 201, 0x03),
    ],
    // 196
    [
        (2, 202, 0x02),
        (9, 202, 0x02),
        (23, 202, 0x02),
        (40, 202, 0x03),
        (2, 205, 0x02),
        (9, 205, 0x02),
        (23, 205, 0x02),
        (40, 205, 0x03),
        (2, 210, 0x02),
        (9, 210, 0x02),
        (23, 210, 0x02),
        (40, 210, 0x03),
        (2, 213, 0x02),
        (9, 213, 0x02),
        (23, 213, 0x02),
        (40, 213, 0x03),
    ],
    // 197
    [
        (3, 202, 0x02),
        (6, 202, 0x02),
        (10, 202, 0x02),
        (15, 202, 0x02),
        (24, 202, 0x02),
        (31, 202, 0x02),
        (41, 202, 0x02),
        (56, 202, 0x03),
        (3, 205, 0x02),
        (6, 205, 0x02),
        (10, 205, 0x02),
        (15, 205, 0x02),
        (24, 205, 0x02),
        (31, 205, 0x02),
        (41, 205, 0x02),
        (56, 205, 0x03),
    ],
    // 198
    [
        (3, 210, 0x02),
        (6, 210, 0x02),
        (10, 210, 0x02),
        (15, 210, 0x02),
        (24, 210, 0x02),
        (31, 210, 0x02),
        (41, 210, 0x02),
        (56, 210, 0x03),
        (3, 213, 0x02),
        (6, 213, 0x02),
        (10, 213, 0x02),
        (15, 213, 0x02),
        (24, 213, 0x02),
        (31, 213, 0x02),
        (41, 213, 0x02),
        (56, 213, 0x03),
    ],
    // 199
    [
        (1, 218, 0x02),
        (22, 218, 0x03),
        (1, 219, 0x02),
        (22, 219, 0x03),
        (1, 238, 0x02),
        (22, 238, 0x03),
        (1, 240, 0x02),
        (22, 240, 0x03),
        (1, 242, 0x02),
        (22, 242, 0x03),
        (1, 243, 0x02),
        (22, 243, 0x03),
        (1, 255, 0x02),
        (22, 255, 0x03),
        (0, 203, 0x02),
        (0, 204, 0x02),
    ],
    // 200
    [
        (2, 218, 0x02),
        (9, 218, 0x02),
        (23, 218, 0x02),
        (40, 218, 0x03),
        (2, 219, 0x02),
        (9, 219, 0x02),
        (23, 219, 0x02),
        (40, 219, 0x03),
        (2, 238, 0x02),
        (9, 238, 0x02),
        (23, 238, 0x02),
        (40, 238, 0x03),
        (2, 240, 0x02),
        (9, 240, 0x02),
        (23, 240, 0x02),
        (40, 240, 0x03),
    ],
    // 201
    [
        (3, 218, 0x02),
        (6, 218, 0x02),
        (10, 218, 0x02),
        (15, 218, 0x02),
        (24, 218, 0x02),
        (31, 218, 0x02),
        (41, 218, 0x02),
        (56, 218, 0x03),
        (3, 219, 0x02),
        (6, 219, 0x02),
        (10, 219, 0x02),
        (15, 219, 0x02),
        (24, 219, 0x02),
        (31, 219, 0x02),
        (41, 219, 0x02),
        (56, 219, 0x03),
    ],
    // 202
    [
        (3, 238, 0x02),
        (6, 238, 0x02),
        (10, 238, 0x02),
        (15, 238, 0x02),
        (24, 238, 0x02),
        (31, 238, 0x02),
        (41, 238, 0x02),
        (56, 238, 0x03),
        (3, 240, 0x02),
        (6, 240, 0x02),
        (10, 240, 0x02),
        (15, 240, 0x02),
        (24, 240, 0x02),
        (31, 240, 0x02),
        (41, 240, 0x02),
        (56, 240, 0x03),
    ],
    // 203
    [
        (2, 242, 0x02),
        (9, 242, 0x02),
        (23, 242, 0x02),
        (40, 242, 0x03),
        (2, 243, 0x02),
        (9, 243, 0x02),
        (23, 243, 0x02),
        (40, 243, 0x03),
        (2, 255, 0x02),
        (9, 255, 0x02),
        (23, 255, 0x02),
        (40, 255, 0x03),
        (1, 203, 0x02),
        (22, 203, 0x03),
        (1, 204, 0x02),
        (22, 204, 0x03),
    ],
    // 204
    [
        (3, 242, 0x02),
        (6, 242, 0x02),
        (10, 242, 0x02),
        (15, 242, 0x02),
        (24, 242, 0x02),
        (31, 242, 0x02),
        (41, 242, 0x02),
        (56, 242, 0x03),
        (3, 243, 0x02),
        (6, 243, 0x02),
        (10, 243, 0x02),
        (15, 243, 0x02),
        (24, 243, 0x02),
        (31, 243, 0x02),
        (41, 243, 0x02),
        (56, 243, 0x03),
    ],
    // 205
    [
        (3, 255, 0x02),
        (6, 255, 0x02),
        (10, 255, 0x02),
        (15, 255, 0x02),
        (24, 255, 0x02),
        (31, 255, 0x02),
        (41, 255, 0x02),
        (56, 255, 0x03),
        (2, 203, 0x02),
        (9, 203, 0x02),
        (23, 203, 0x02),
        (40, 203, 0x03),
        (2, 204, 0x02),
        (9, 204, 0x02),
        (23, 204, 0x02),
        (40, 204, 0x03),
    ],
    // 206
    [
        (3, 203, 0x02),
        (6, 203, 0x02),
        (10, 203, 0x02),
        (15, 203, 0x02),
        (24, 203, 0x02),
        (31, 203, 0x02),
        (41, 203, 0x02),
        (56, 203, 0x03),
        (3, 204, 0x02),
        (6, 204, 0x02),
        (10, 204, 0x02),
        (15, 204, 0x02),
        (24, 204, 0x02),
        (31, 204, 0x02),
        (41, 204, 0x02),
        (56, 204, 0x03),
    ],
    // 207
    [
        (211, 0, 0x00),
        (212, 0, 0x00),
        (214, 0, 0x00),
        (215, 0, 0x00),
        (218, 0, 0x00),
        (219, 0, 0x00),
        (221, 0, 0x00),
        (222, 0, 0x00),
        (226, 0, 0x00),
        (228, 0, 0x00),
        (232, 0, 0x00),
        (235, 0, 0x00),
        (240, 0, 0x00),
        (243, 0, 0x00),
        (247, 0, 0x00),
        (250, 0, 0x00),
    ],
    // 208
    [
        (0, 211, 0x02),
        (0, 212, 0x02),
        (0, 214, 0x02),
        (0, 221, 0x02),
        (0, 222, 0x02),
        (0, 223, 0x02),
        (0, 241, 0x02),
        (0, 244, 0x02),
        (0, 245, 0x02),
        (0, 246, 0x02),
        (0, 247, 0x02),
        (0, 248, 0x02),
        (0, 250, 0x02),
        (0, 251, 0x02),
        (0, 252, 0x02),
        (0, 253, 0x02),
    ],
    // 209
    [
        (1, 211, 0x02),
        (22, 211, 0x03),
        (1, 212, 0x02),
        (22, 212, 0x03),
        (1, 214, 0x02),
        (22, 214, 0x03),
        (1, 221, 0x02),
        (22, 221, 0x03),
        (1, 222, 0x02),
        (22, 222, 0x03),
        (1, 223, 0x02),
        (22, 223, 0x03),
        (1, 241, 0x02),
        (22, 241, 0x03),
        (1, 244, 0x02),
        (22, 244, 0x03),
    ],
    // 210
    [
        (2, 211, 0x02),
        (9, 211, 0x02),
        (23, 211, 0x02),
        (40, 211, 0x03),
        (2, 212, 0x02),
        (9, 212, 0x02),
        (23, 212, 0x02),
        (40, 212, 0x03),
        (2, 214, 0x02),
        (9, 214, 0x02),
        (23, 214, 0x02),
        (40, 214, 0x03),
        (2, 221, 0x02),
        (9, 221, 0x02),
        (23, 221, 0x02),
        (40, 221, 0x03),
    ],
    // 211
    [
        (3, 211, 0x02),
        (6, 211, 0x02),
        (10, 211, 0x02),
        (15, 211, 0x02),
        (24, 211, 0x02),
        (31, 211, 0x02),
        (41, 211, 0x02),
        (56, 211, 0x03),
        (3, 212, 0x02),
        (6, 212, 0x02),
        (10, 212, 0x02),
        (15, 212, 0x02),
        (24, 212, 0x02),
        (31, 212, 0x02),
        (41, 212, 0x02),
        (56, 212, 0x03),
    ],
    // 212
    [
        (3, 214, 0x02),
        (6, 214, 0x02),
        (10, 214, 0x02),
        (15, 214, 0x02),
        (24, 214, 0x02),
        (31, 214, 0x02),
        (41, 214, 0x02),
        (56, 214, 0x03),
        (3, 221, 0x02),
        (6, 221, 0x02),
        (10, 221, 0x02),
        (15, 221, 0x02),
        (24, 221, 0x02),
        (31, 221, 0x02),
        (41, 221, 0x02),
        (56, 221, 0x03),
    ],
    // 213
    [
        (2, 222, 0x02),
        (9, 222, 0x02),
        (23, 222, 0x02),
        (40, 222, 0x03),
        (2, 223, 0x02),
        (9, 223, 0x02),
        (23, 223, 0x02),
        (40, 223, 0x03),
        (2, 241, 0x02),
        (9, 241, 0x02),
        (23, 241, 0x02),
        (40, 241, 0x03),
        (2, 244, 0x02),
        (9, 244, 0x02),
        (23, 244, 0x02),
        (40, 244, 0x03),
    ],
    // 214
    [
        (3, 222, 0x02),
        (6, 222, 0x02),
        (10, 222, 0x02),
        (15, 222, 0x02),
        (24, 222, 0x02),
        (31, 222, 0x02),
        (41, 222, 0x02),
        (56, 222, 0x03),
        (3, 223, 0x02),
        (6, 223, 0x02),
        (10, 223, 0x02),
        (15, 223, 0x02),
        (24, 223, 0x02),
        (31, 223, 0x02),
        (41, 223, 0x02),
        (56, 223, 0x03),
    ],
    // 215
    [
        (3, 241, 0x02),
        (6, 241, 0x02),
        (10, 241, 0x02),
        (15, 241, 0x02),
        (24, 241, 0x02),
        (31, 241, 0x02),
        (41, 241, 0x02),
        (56, 241, 0x03),
        (3, 244, 0x02),
        (6, 244, 0x02),
        (10, 244, 0x02),
        (15, 244, 0x02),
        (24, 244, 0x02),
        (31, 244, 0x02),
        (41, 244, 0x02),
        (56, 244, 0x03),
    ],
    // 216
    [
        (1, 245, 0x02),
        (22, 245, 0x03),
        (1, 246, 0x02),
        (22, 246, 0x03),
        (1, 247, 0x02),
        (22, 247, 0x03),
        (1, 248, 0x02),
        (22, 248, 0x03),
        (1, 250, 0x02),
        (22, 250, 0x03),
        (1, 251, 0x02),
        (22, 251, 0x03),
        (1, 252, 0x02),
        (22, 252, 0x03),
        (1, 253, 0x02),
        (22, 253, 0x03),
    ],
    // 217
    [
        (2, 245, 0x02),
        (9, 245, 0x02),
        (23, 245, 0x02),
        (40, 245, 0x03),
        (2, 246, 0x02),
        (9, 246, 0x02),
        (23, 246, 0x02),
        (40, 246, 0x03),
        (2, 247, 0x02),
        (9, 247, 0x02),
        (23, 247, 0x02),
        (40, 247, 0x03),
        (2, 248, 0x02),
        (9, 248, 0x02),
        (23, 248, 0x02),
        (40, 248, 0x03),
    ],
    // 218
    [
        (3, 245, 0x02),
        (6, 245, 0x02),
        (10, 245, 0x02),
        (15, 245, 0x02),
        (24, 245, 0x02),
        (31, 245, 0x02),
        (41, 245, 0x02),
        (56, 245, 0x03),
        (3, 246, 0x02),
        (6, 246, 0x02),
        (10, 246, 0x02),
        (15, 246, 0x02),
        (24, 246, 0x02),
        (31, 246, 0x02),
        (41, 246, 0x02),
        (56, 246, 0x03),
    ],
    // 219
    [
        (3, 247, 0x02),
        (6, 247, 0x02),
        (10, 247, 0x02),
        (15, 247, 0x02),
        (24, 247, 0x02),
        (31, 247, 0x02),
        (41, 247, 0x02),
        (56, 247, 0x03),
        (3, 248, 0x02),
        (6, 248, 0x02),
        (10, 248, 0x02),
        (15, 248, 0x02),
        (24, 248, 0x02),
        (31, 248, 0x02),
        (41, 248, 0x02),
        (56, 248, 0x03),
    ],
    // 220
    [
        (2, 250, 0x02),
        (9, 250, 0x02),
        (23, 250, 0x02),
        (40, 250, 0x03),
        (2, 251, 0x02),
        (9, 251, 0x02),
        (23, 251, 0x02),
        (40, 251, 0x03),
        (2, 252, 0x02),
        (9, 252, 0x02),
        (23, 252, 0x02),
        (40, 252, 0x03),
        (2, 253, 0x02),
        (9, 253, 0x02),
        (23, 253, 0x02),
        (40, 253, 0x03),
    ],
    // 221
    [
        (3, 250, 0x02),
        (6, 250, 0x02),
        (10, 250, 0x02),
        (15, 250, 0x02),
        (24, 250, 0x02),
        (31, 250, 0x02),
        (41, 250, 0x02),
        (56, 250, 0x03),
        (3, 251, 0x02),
        (6, 251, 0x02),
        (10, 251, 0x02),
        (15, 251, 0x02),
        (24, 251, 0x02),
        (31, 251, 0x02),
        (41, 251, 0x02),
        (56, 251, 0x03),
    ],
    // 222
    [
        (3, 252, 0x02),
        (6, 252, 0x02),
        (10, 252, 0x02),
        (15, 252, 0x02),
        (24, 252, 0x02),
        (31, 252, 0x02),
        (41, 252, 0x02),
        (56, 252, 0x03),
        (3, 253, 0x02),
        (6, 253, 0x02),
        (10, 253, 0x02),
        (15, 253, 0x02),
        (24, 253, 0x02),
        (31, 253, 0x02),
        (41, 253, 0x02),
        (56, 253, 0x03),
    ],
    // 223
    [
        (0, 254, 0x02),
        (227, 0, 0x00),
        (229, 0, 0x00),
        (230, 0, 0x00),
        (233, 0, 0x00),
        (234, 0, 0x00),
        (236, 0, 0x00),
        (237, 0, 0x00),
        (241, 0, 0x00),
        (242, 0, 0x00),
        (244, 0, 0x00),
        (245, 0, 0x00),
        (248, 0, 0x00),
        (249, 0, 0x00),
        (251, 0, 0x00),
        (252, 0, 0x00),
    ],
    // 224
    [
        (1, 254, 0x02),
        (22, 254, 0x03),
        (0, 2, 0x02),
        (0, 3, 0x02),
        (0, 4, 0x02),
        (0, 5, 0x02),
        (0, 6, 0x02),
        (0, 7, 0x02),
        (0, 8, 0x02),
        (0, 11, 0x02),
        (0, 12, 0x02),
        (0, 14, 0x02),
        (0, 15, 0x02),
        (0, 16, 0x02),
        (0, 17, 0x02),
        (0, 18, 0x02),
    ],
    // 225
    [
        (2, 254, 0x02),
        (9, 254, 0x02),
        (23, 254, 0x02),
        (40, 254, 0x03),
        (1, 2, 0x02),
        (22, 2, 0x03),
        (1, 3, 0x02),
        (22, 3, 0x03),
        (1, 4, 0x02),
        (22, 4, 0x03),
        (1, 5, 0x02),
        (22, 5, 0x03),
        (1, 6, 0x02),
        (22, 6, 0x03),
        (1, 7, 0x02),
        (22, 7, 0x03),
    ],
    // 226
    [
        (3, 254, 0x02),
        (6, 254, 0x02),
        (10, 254, 0x02),
        (15, 254, 0x02),
        (24, 254, 0x02),
        (31, 254, 0x02),
        (41, 254, 0x02),
        (56, 254, 0x03),
        (2, 2, 0x02),
        (9, 2, 0x02),
        (23, 2, 0x02),
        (40, 2, 0x03),
        (2, 3, 0x02),
        (9, 3, 0x02),
        (23, 3, 0x02),
        (40, 3, 0x03),
    ],
    // 227
    [
        (3, 2, 0x02),
        (6, 2, 0x02),
        (10, 2, 0x02),
        (15, 2, 0x02),
        (24, 2, 0x02),
        (31, 2, 0x02),
        (41, 2, 0x02),
        (56, 2, 0x03),
        (3, 3, 0x02),
        (6, 3, 0x02),
        (10, 3, 0x02),
        (15, 3, 0x02),
        (24, 3, 0x02),
        (31, 3, 0x02),
        (41, 3, 0x02),
        (56, 3, 0x03),
    ],
    // 228
    [
        (2, 4, 0x02),
        (9, 4, 0x02),
        (23, 4, 0x02),
        (40, 4, 0x03),
        (2, 5, 0x02),
        (9, 5, 0x02),
        (23, 5, 0x02),
        (40, 5, 0x03),
        (2, 6, 0x02),
        (9, 6, 0x02),
        (23, 6, 0x02),
        (40, 6, 0x03),
        (2, 7, 0x02),
        (9, 7, 0x02),
        (23, 7, 0x02),
        (40, 7, 0x03),
    ],
    // 229
    [
        (3, 4, 0x02),
        (6, 4, 0x02),
        (10, 4, 0x02),
        (15, 4, 0x02),
        (24, 4, 0x02),
        (31, 4, 0x02),
        (41, 4, 0x02),
        (56, 4, 0x03),
        (3, 5, 0x02),
        (6, 5, 0x02),
        (10, 5, 0x02),
        (15, 5, 0x02),
        (24, 5, 0x02),
        (31, 5, 0x02),
        (41, 5, 0x02),
        (56, 5, 0x03),
    ],
    // 230
    [
        (3, 6, 0x02),
        (6, 6, 0x02),
        (10, 6, 0x02),
        (15, 6, 0x02),
        (24, 6, 0x02),
        (31, 6, 0x02),
        (41, 6, 0x02),
        (56, 6, 0x03),
        (3, 7, 0x02),
        (6, 7, 0x02),
        (10, 7, 0x02),
        (15, 7, 0x02),
        (24, 7, 0x02),
        (31, 7, 0x02),
        (41, 7, 0x02),
        (56, 7, 0x03),
    ],
    // 231
    [
        (1, 8, 0x02),
        (22, 8, 0x03),
        (1, 11, 0x02),
        (22, 11, 0x03),
        (1, 12, 0x02),
        (22, 12, 0x03),
        (1, 14, 0x02),
        (22, 14, 0x03),
        (1, 15, 0x02),
        (22, 15, 0x03),
        (1, 16, 0x02),
        (22, 16, 0x03),
        (1, 17, 0x02),
        (22, 17, 0x03),
        (1, 18, 0x02),
        (22, 18, 0x03),
    ],
    // 232
    [
        (2, 8, 0x02),
        (9, 8, 0x02),
        (23, 8, 0x02),
        (40, 8, 0x03),
        (2, 11, 0x02),
        (9, 11, 0x02),
        (23, 11, 0x02),
        (40, 11, 0x03),
        (2, 12, 0x02),
        (9, 12, 0x02),
        (23, 12, 0x02),
        (40, 12, 0x03),
        (2, 14, 0x02),
        (9, 14, 0x02),
        (23, 14, 0x02),
        (40, 14, 0x03),
    ],
    // 233
    [
        (3, 8, 0x02),
        (6, 8, 0x02),
        (10, 8, 0x02),
        (15, 8, 0x02),
        (24, 8, 0x02),
        (31, 8, 0x02),
        (41, 8, 0x02),
        (56, 8, 0x03),
        (3, 11, 0x02),
        (6, 11, 0x02),
        (10, 11, 0x02),
        (15, 11, 0x02),
        (24, 11, 0x02),
        (31, 11, 0x02),
        (41, 11, 0x02),
        (56, 11, 0x03),
    ],
    // 234
    [
        (3, 12, 0x02),
        (6, 12, 0x02),
        (10, 12, 0x02),
        (15, 12, 0x02),
        (24, 12, 0x02),
        (31, 12, 0x02),
        (41, 12, 0x02),
        (56, 12, 0x03),
        (3, 14, 0x02),
        (6, 14, 0x02),
        (10, 14, 0x02),
        (15, 14, 0x02),
        (24, 14, 0x02),
        (31, 14, 0x02),
        (41, 14, 0x02),
        (56, 14, 0x03),
    ],
    // 235
    [
        (2, 15, 0x02),
        (9, 15, 0x02),
        (23, 15, 0x02),
        (40, 15, 0x03),
        (2, 16, 0x02),
        (9, 16, 0x02),
        (23, 16, 0x02),
        (40, 16, 0x03),
        (2, 17, 0x02),
        (9, 17, 0x02),
        (23, 17, 0x02),
        (40, 17, 0x03),
        (2, 18, 0x02),
        (9, 18, 0x02),
        (23, 18, 0x02),
        (40, 18, 0x03),
    ],
    // 236
    [
        (3, 15, 0x02),
        (6, 15, 0x02),
        (10, 15, 0x02),
        (15, 15, 0x02),
        (24, 15, 0x02),
        (31, 15, 0x02),
        (41, 15, 0x02),
        (56, 15, 0x03),
        (3, 16, 0x02),
        (6, 16, 0x02),
        (10, 16, 0x02),
        (15, 16, 0x02),
        (24, 16, 0x02),
        (31, 16, 0x02),
        (41, 16, 0x02),
        (56, 16, 0x03),
    ],
    // 237
    [
        (3, 17, 0x02),
        (6, 17, 0x02),
        (10, 17, 0x02),
        (15, 17, 0x02),
        (24, 17, 0x02),
        (31, 17, 0x02),
        (41, 17, 0x02),
        (56, 17, 0x03),
        (3, 18, 0x02),
        (6, 18, 0x02),
        (10, 18, 0x02),
        (15, 18, 0x02),
        (24, 18, 0x02),
        (31, 18, 0x02),
        (41, 18, 0x02),
        (56, 18, 0x03),
    ],
    // 238
    [
        (0, 19, 0x02),
        (0, 20, 0x02),
        (0, 21, 0x02),
        (0, 23, 0x02),
        (0, 24, 0x02),
        (0, 25, 0x02),
        (0, 26, 0x02),
        (0, 27, 0x02),
        (0, 28, 0x02),
        (0, 29, 0x02),
        (0, 30, 0x02),
        (0, 31, 0x02),
        (0, 127, 0x02),
        (0, 220, 0x02),
        (0, 249, 0x02),
        (253, 0, 0x00),
    ],
    // 239
    [
        (1, 19, 0x02),
        (22, 19, 0x03),
        (1, 20, 0x02),
        (22, 20, 0x03),
        (1, 21, 0x02),
        (22, 21, 0x03),
        (1, 23, 0x02),
        (22, 23, 0x03),
        (1, 24, 0x02),
        (22, 24, 0x03),
        (1, 25, 0x02),
        (22, 25, 0x03),
        (1, 26, 0x02),
        (22, 26, 0x03),
        (1, 27, 0x02),
        (22, 27, 0x03),
    ],
    // 240
    [
        (2, 19, 0x02),
        (9, 19, 0x02),
        (23, 19, 0x02),
        (40, 19, 0x03),
        (2, 20, 0x02),
        (9, 20, 0x02),
        (23, 20, 0x02),
        (40, 20, 0x03),
        (2, 21, 0x02),
        (9, 21, 0x02),
        (23, 21, 0x02),
        (40, 21, 0x03),
        (2, 23, 0x02),
        (9, 23, 0x02),
        (23, 23, 0x02),
        (40, 23, 0x03),
    ],
    // 241
    [
        (3, 19, 0x02),
        (6, 19, 0x02),
        (10, 19, 0x02),
        (15, 19, 0x02),
        (24, 19, 0x02),
        (31, 19, 0x02),
        (41, 19, 0x02),
        (56, 19, 0x03),
        (3, 20, 0x02),
        (6, 20, 0x02),
        (10, 20, 0x02),
        (15, 20, 0x02),
        (24, 20, 0x02),
        (31, 20, 0x02),
        (41, 20, 0x02),
        (56, 20, 0x03),
    ],
    // 242
    [
        (3, 21, 0x02),
        (6, 21, 0x02),
        (10, 21, 0x02),
        (15, 21, 0x02),
        (24, 21, 0x02),
        (31, 21, 0x02),
        (41, 21, 0x02),
        (56, 21, 0x03),
        (3, 23, 0x02),
        (6, 23, 0x02),
        (10, 23, 0x02),
        (15, 23, 0x02),
        (24, 23, 0x02),
        (31, 23, 0x02),
        (41, 23, 0x02),
        (56, 23, 0x03),
    ],
    // 243
    [
        (2, 24, 0x02),
        (9, 24, 0x02),
        (23, 24, 0x02),
        (40, 24, 0x03),
        (2, 25, 0x02),
        (9, 25, 0x02),
        (23, 25, 0x02),
        (40, 25, 0x03),
        (2, 26, 0x02),
        (9, 26, 0x02),
        (23, 26, 0x02),
        (40, 26, 0x03),
        (2, 27, 0x02),
        (9, 27, 0x02),
        (23, 27, 0x02),
        (40, 27, 0x03),
    ],
    // 244
    [
        (3, 24, 0x02),
        (6, 24, 0x02),
        (10, 24, 0x02),
        (15, 24, 0x02),
        (24, 24, 0x02),
        (31, 24, 0x02),
        (41, 24, 0x02),
        (56, 24, 0x03),
        (3, 25, 0x02),
        (6, 25, 0x02),
        (10, 25, 0x02),
        (15, 25, 0x02),
        (24, 25, 0x02),
        (31, 25, 0x02),
        (41, 25, 0x02),
        (56, 25, 0x03),
    ],
    // 245
    [
        (3, 26, 0x02),
        (6, 26, 0x02),
        (10, 26, 0x02),
        (15, 26, 0x02),
        (24, 26, 0x02),
        (31, 26, 0x02),
        (41, 26, 0x02),
        (56, 26, 0x03),
        (3, 27, 0x02),
        (6, 27, 0x02),
        (10, 27, 0x02),
        (15, 27, 0x02),
        (24, 27, 0x02),
        (31, 27, 0x02),
        (41, 27, 0x02),
        (56, 27, 0x03),
    ],
    // 246
    [
        (1, 28, 0x02),
        (22, 28, 0x03),
        (1, 29, 0x02),
        (22, 29, 0x03),
        (1, 30, 0x02),
        (22, 30, 0x03),
        (1, 31, 0x02),
        (22, 31, 0x03),
        (1, 127, 0x02),
        (22, 127, 0x03),
        (1, 220, 0x02),
        (22, 220, 0x03),
        (1, 249, 0x02),
        (22, 249, 0x03),
        (254, 0, 0x00),
        (255, 0, 0x00),
    ],
    // 247
    [
        (2, 28, 0x02),
        (9, 28, 0x02),
        (23, 28, 0x02),
        (40, 28, 0x03),
        (2, 29, 0x02),
        (9, 29, 0x02),
        (23, 29, 0x02),
        (40, 29, 0x03),
        (2, 30, 0x02),
        (9, 30, 0x02),
        (23, 30, 0x02),
        (40, 30, 0x03),
        (2, 31, 0x02),
        (9, 31, 0x02),
        (23, 31, 0x02),
        (40, 31, 0x03),
    ],
    // 248
    [
        (3, 28, 0x02),
        (6, 28, 0x02),
        (10, 28, 0x02),
        (15, 28, 0x02),
        (24, 28, 0x02),
        (31, 28, 0x02),
        (41, 28, 0x02),
        (56, 28, 0x03),
        (3, 29, 0x02),
        (6, 29, 0x02),
        (10, 29, 0x02),
        (15, 29, 0x02),
        (24, 29, 0x02),
        (31, 29, 0x02),
        (41, 29, 0x02),
        (56, 29, 0x03),
    ],
    // 249
    [
        (3, 30, 0x02),
        (6, 30, 0x02),
        (10, 30, 0x02),
        (15, 30, 0x02),
        (24, 30, 0x02),
        (31, 30, 0x02),
        (41, 30, 0x02),
        (56, 30, 0x03),
        (3, 31, 0x02),
        (6, 31, 0x02),
        (10, 31, 0x02),
        (15, 31, 0x02),
        (24, 31, 0x02),
        (31, 31, 0x02),
        (41, 31, 0x02),
        (56, 31, 0x03),
    ],
    // 250
    [
        (2, 127, 0x02),
        (9, 127, 0x02),
        (23, 127, 0x02),
        (40, 127, 0x03),
        (2, 220, 0x02),
        (9, 220, 0x02),
        (23, 220, 0x02),
        (40, 220, 0x03),
        (2, 249, 0x02),
        (9, 249, 0x02),
        (23, 249, 0x02),
        (40, 249, 0x03),
        (0, 10, 0x02),
        (0, 13, 0x02),
        (0, 22, 0x02),
        (0, 0, 0x04),
    ],
    // 251
    [
        (3, 127, 0x02),
        (6, 127, 0x02),
        (10, 127, 0x02),
        (15, 127, 0x02),
        (24, 127, 0x02),
        (31, 127, 0x02),
        (41, 127, 0x02),
        (56, 127, 0x03),
        (3, 220, 0x02),
        (6, 220, 0x02),
        (10, 220, 0x02),
        (15, 220, 0x02),
        (24, 220, 0x02),
        (31, 220, 0x02),
        (41, 220, 0x02),
        (56, 220, 0x03),
    ],
    // 252
    [
        (3, 249, 0x02),
        (6, 249, 0x02),
        (10, 249, 0x02),
        (15, 249, 0x02),
        (24, 249, 0x02),
        (31, 249, 0x02),
        (41, 249, 0x02),
        (56, 249, 0x03),
        (1, 10, 0x02),
        (22, 10, 0x03),
        (1, 13, 0x02),
        (22, 13, 0x03),
        (1, 22, 0x02),
        (22, 22, 0x03),
        (0, 0, 0x04),
        (0, 0, 0x05),
    ],
    // 253
    [
        (2, 10, 0x02),
        (9, 10, 0x02),
        (23, 10, 0x02),
        (40, 10, 0x03),
        (2, 13, 0x02),
        (9, 13, 0x02),
        (23, 13, 0x02),
        (40, 13, 0x03),
        (2, 22, 0x02),
        (9, 22, 0x02),
        (23, 22, 0x02),
        (40, 22, 0x03),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x05),
    ],
    // 254
    [
        (3, 10, 0x02),
        (6, 10, 0x02),
        (10, 10, 0x02),
        (15, 10, 0x02),
        (24, 10, 0x02),
        (31, 10, 0x02),
        (41, 10, 0x02),
        (56, 10, 0x03),
        (3, 13, 0x02),
        (6, 13, 0x02),
        (10, 13, 0x02),
        (15, 13, 0x02),
        (24, 13, 0x02),
        (31, 13, 0x02),
        (41, 13, 0x02),
        (56, 13, 0x03),
    ],
    // 255
    [
        (3, 22, 0x02),
        (6, 22, 0x02),
        (10, 22, 0x02),
        (15, 22, 0x02),
        (24, 22, 0x02),
        (31, 22, 0x02),
        (41, 22, 0x02),
        (56, 22, 0x03),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x04),
        (0, 0, 0x05),
    ],
];

#[cfg(test)]
mod testr {
    use super::*;

    /// Unit tests for RFC 7541 Appendix C.4
    #[test]
    fn huffman_encode_and_decode() {
        let cases = [
            (
                b"www.example.com".to_vec(),
                vec![
                    0xf1, 0xe3, 0xc2, 0xe5, 0xf2, 0x3a, 0x6b, 0xa0, 0xab, 0x90, 0xf4, 0xff,
                ],
            ),
            (
                b"no-cache".to_vec(),
                vec![0xa8, 0xeb, 0x10, 0x64, 0x9c, 0xbf],
            ),
            (
                b"custom-key".to_vec(),
                vec![0x25, 0xa8, 0x49, 0xe9, 0x5b, 0xa9, 0x7d, 0x7f],
            ),
            (
                b"custom-value".to_vec(),
                vec![0x25, 0xa8, 0x49, 0xe9, 0x5b, 0xb8, 0xe8, 0xb4, 0xbf],
            ),
        ];

        let mut buf = vec![0; 128];
        for (str, enc) in cases {
            let len = encode(&str, &mut buf, true).unwrap();
            assert_eq!(&enc, &buf[..len]);
            assert_eq!(encode_output_length(&str, false), enc.len());

            let str2 = decode(&enc).unwrap();
            assert_eq!(str, str2);
        }
    }

    #[test]
    fn huffman_decode_invalid_without_eos() {
        let buf = vec![0x3f, 0xff, 0xff, 0xfe];
        assert_eq!(decode(&buf), Err(Http3Error::QpackDecompressionFailed));
    }
}
